详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤]
图片缓存到本地,安卓可以正常显示图片,苹果手机不可以
11:04:50.907 [LOG] : 下载回调status==200-->_downloads/image/1d5af143547469836fb5fe15f6e18e72.jpg
11:04:50.931 [LOG] : file:///Users/zhengwanjun/Library/Developer/CoreSimulator/Devices/5ADC18F7-6278-47CB-8040-9FB7F8E52B5D/data/Containers/Data/Application/F4896374-AA57-4ADD-814A-522E1620AE18/Library/Caches/Pandora/downloads/image/1d5af143547469836fb5fe15f6e18e72.jpg
这个是我现在的路径和模拟器中图片存储位置
代码部分
// 显示的图片
<image class="cache-img" :mode="mode" :src="absolutePath" />
// 确认是否已经缓存
<image :src="url" @load="_imgOnLoad" @error="_imgOnLoadError" style="width: 0; height: 0; opacity: 0;" />
// 下载的位置
let hbPath = `${constant.cachePath}image/${hex_md5(this.uniqueStr)}.jpg`; //HBuilder平台路径
let sdPath = 'file://' + plus.io.convertLocalFileSystemURL(hbPath); //SD卡绝对路径
// tastArr中放入下载任务
let obj = {
imageUrl: this.src,
hbPath: this.hbPath,
sdPath: this.sdPath
}
// 下载成功后 回调
this.imgCache.pushTask(obj, this.setImageUrl)
// 下载代码
downloadTask = downloadTask || plus.downloader.createDownload(imageUrl, {
"filename": hbPath,
"timeout": 10,
"retry": 2
}, function(download, status) {
console.log("下载回调status==" + status+"-->"+hbPath);
if (status == 200) {
cb(sdPath, obj);
}else{
delFile(hbPath);
download.abort();
}
//继续下载
that.startTask(cb);
});
downloadTask.start();
}
// 将下载好的图片赋值给图片
setImageUrl(sdPath, obj) {
if (sdPath === this.sdPath) {
console.log(sdPath)
this.absolutePath = obj.hbPath
}
}
[结果]
[期望] 希望苹果手机也显示正常
IDE运行环境说明
[HBuilder 或 HBuilderX] HBuilderX最新版本
App运行环境说明
[iOS版本号] iphone 7p 11.4.1
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[安装包]
联系方式
[QQ]232581115
z***@126.com (作者)
倒不是别的,就是看别人的帖子都是用的5+的API,而且uni.download没法指定文件名称,就用了5+的api
2018-11-06 14:37
灰色的灵魂
回复 z***@126.com: 你好,请问您的uniapp图片离线问题解决了吗?
我也需要能实现全站的离线图片下载替换。求解决方法
qq:27888677
2019-04-24 11:34
1***@qq.com
回复 z***@126.com: 你好,请问能否分享 uni-app 图片离线的解决方案呢?
2019-05-01 16:54
gsgundam
测试中发现uni的api确实不能满足要求,比如使用saveFile存储了文件,但是如果在文件管理器里直接删除了对应的文件,还是能获取到文件信息,没法判断图片是否真的存在
2019-05-15 11:39