uni.downloadFile下载
uni.saveFile持久化
将持久化的路径显示在
<image class="cc-advert-bg" :src="imageUrl" mode="aspectFill"></image>中 显示白屏
我已上架的App 都能正常显示,但是这个4.57就说无法显示

- 发布:2025-04-25 18:46
- 更新:2025-05-07 17:49
- 阅读:284
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 23H2
HBuilderX类型: 正式
HBuilderX版本号: 4.57
手机系统: HarmonyOS NEXT
手机系统版本号: HarmonyOS NEXT Developer Preview
手机厂商: 华为
手机机型: HUWEI Mate 60
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
正常显示
正常显示
实际结果:
白屏
白屏
bug描述:
我通过 uni.downloadFile 下载的图片在通过uni.saveFile持久化图片 ,
让下载的图片显示在界面上
image src无法显示 显示白屏

Johnny_new (作者) - 123456
业务逻辑,具体流程如下
- 首先尝试从缓存中读取上次已下载的闪频广告图片。
- 若缓存中存在该图片,则直接展示上次下载的闪频广告图片,以快速呈现内容。
- 若缓存中无对应图片,则展示系统预设的默认闪频广告图片,保证界面的完整性。
- 发起对服务器端闪频广告图片的下载操作:
- 成功从服务器下载闪频广告图片后,将其保存至本地缓存中,以便下次优先从缓存中读取,提升加载速度。
测试结果
1、从缓存中获取到路径无法显示
2、根据缓存路径查询文件信息【uni.getSavedFileInfo】获取能查询到但是image 无法显示
2、下载临时图片可显示
3、持久化图片可显示

lubing - lubing
uni.downloadFile({
url: 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png',
success: (res) => {
uni.saveFile({
tempFilePath: res.tempFilePath,
success: (resp) => {
// this.imagePath = resp.savedFilePath
uni.getSavedFileList({
complete: (ret) => {
uni.showModal({
content: JSON.stringify(ret)
})
this.imagePath = ret.fileList[0].filePath
}
})
}
})
}
})
我对照写了一个在4.45、4.56、4.64的版本上都是可以显示图片的,升级下最新的版本试下呢?
-
Johnny_new (作者)
你这样确实没有问题,你把下载的路径缓存起来,然后关闭App进程,再打开App, onReady 中获取缓存,并且将缓存的本地地址设置到image中,此时就白屏无法显示,必须要setTimeout 一下再赋值给image
2025-05-07 18:02
-
-
Johnny_new (作者)
4.45版本 版本经过测试没有问题
2025-04-27 15:10