cyyc
cyyc
  • 发布:2018-11-02 17:33
  • 更新:2023-09-10 09:17
  • 阅读:7140

关于IOS缓存本地图片读取显示空白的问题解决办法

分类:uni-app

说一下我的应用场景:
网络加载图片太多,所以考虑使用本地缓存。图片下载到本地后使用本地路径。
用到的接口:

// 检查本地是否已经存储  
plus.io.resolveLocalFileSystemURL  

// 下载文件  
plus.downloader.createDownload  

// 下载失败删除文件  
plus.io.resolveLocalFileSystemURL

存储地址使用:_downloads/xxx.jpg

得到的结果如楼主一样,安卓可以读取本地文件,iOS返回空白。

在群里问了半天,最后群主说建议使用uni的API
尝试方法:

// 下载文件  
uni.downloadFile(OBJECT)  

// 保存文件  
uni.saveFile(OBJECT)

通过这种方法,确实可以显示图片,但是有一个问题,就是无法自定义文件名,
下载的临时路径,文件名是使用时间戳命名的,存储到本地后也只能是这个文件名,如果我们要监测缓存,就需要去维护一个网络图片与本地图片的map关系,而且缓存删除更新,都需要更新这个map文件,相对复杂。

思考:为什么uni.saveFile返回的路径可以显示,是不是ios的相对路径不一样?

通过打印,发现uni.saveFile存储到路径在_doc/目录下,尝试把存储路径从_downloads改为_doc后,发现,问题解决了!
原来如此。

相关文档 相对路径URL

3 关注 分享
gysidon s***@163.com 插插妹

要回复文章请先登录注册

2***@qq.com

2***@qq.com

https://ask.dcloud.net.cn/question/177970
2023-09-10 09:17
3***@qq.com

3***@qq.com

在uni-app项目里,plus.io.resolveLocalFileSystemUR查找本地文件,遇到"_doucment/","_doc"这样下划线开头的文件夹,这个方法就不执行,但是用plus.downloader.createDownload 这个方法下载默认必须是这几个下划线开头的文件夹名称,这个怎么解决呢?
2020-02-19 09:49
1***@qq.com

1***@qq.com

很棒,受用了,点赞
2019-12-23 21:16
灰色的灵魂

灰色的灵魂

缓存本地图片代码哈。
2019-04-24 12:16
gysidon

gysidon

回复 cyyc :
到处都是坑啊!!
2018-11-22 17:32
cyyc

cyyc (作者)

回复 gysidon :
遇到了,但是目前还没有解决,改成ios直接请求地址了。。。
2018-11-21 18:29
gysidon

gysidon

老铁,这个问题是解决了,但是ios本地打包后,在真机上图片路径显示不对还是读不出来,有遇到么??
2018-11-16 12:03