Johnny_new
Johnny_new
  • 发布:2025-04-25 18:46
  • 更新:2025-05-07 17:49
  • 阅读:284

【报Bug】uni.saveFile 持久化下载的图片 image src无法显示

分类:鸿蒙Next

产品分类: 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

操作步骤:

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

预期结果:

正常显示

实际结果:

白屏

bug描述:

我通过 uni.downloadFile 下载的图片在通过uni.saveFile持久化图片 ,
让下载的图片显示在界面上
image src无法显示 显示白屏

2025-04-25 18:46 负责人:无 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

您好,方便发个可复现demo吗?以便于更好的排查问题

  • Johnny_new (作者)

    4.45版本 版本经过测试没有问题

    2025-04-27 15:10

Johnny_new

Johnny_new (作者) - 123456

业务逻辑,具体流程如下

  1. 首先尝试从缓存中读取上次已下载的闪频广告图片。
    • 若缓存中存在该图片,则直接展示上次下载的闪频广告图片,以快速呈现内容。
    • 若缓存中无对应图片,则展示系统预设的默认闪频广告图片,保证界面的完整性。
  2. 发起对服务器端闪频广告图片的下载操作:
    • 成功从服务器下载闪频广告图片后,将其保存至本地缓存中,以便下次优先从缓存中读取,提升加载速度。

测试结果
1、从缓存中获取到路径无法显示
2、根据缓存路径查询文件信息【uni.getSavedFileInfo】获取能查询到但是image 无法显示
2、下载临时图片可显示
3、持久化图片可显示

  • 恭喜n发财

    其他端是否能显示呢,安卓ios/h5/xcx?有试过吗

    2025-04-27 12:12

  • Johnny_new (作者)

    回复 恭喜n发财: 其它都好的,就鸿蒙不行

    2025-04-27 12:39

  • Johnny_new (作者)

    回复 恭喜n发财: 而且们正式发布的鸿蒙NEXT App都没有问题,这次改了一些bug在打包 就是白屏

    2025-04-27 12:41

lubing

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 (作者)

    简单点:再onReady中给image 赋值一个 下载到本地图片的地址就会失效,必须要延迟

    2025-05-07 18:06

  • lubing

    回复 Johnny_new: 复现了,感觉生命周期有些问题

    2025-05-07 18:54

要回复问题请先登录注册