业务场景:对于多种资源类型(图片、视频、scrom、office等)需要在离线状态下,通过移动端缓存可查看资源。
思路:
1、通过接口下载相应资源的压缩包
2、把压缩包存放在本地路径,并在缓存中记录路径地址
3、查看资源时通过缓存找到相应的本地路径,通过解压获取到相对应的资源
实现过程:
根据相应内容调用接口生成附件zip,并使用返回的zip相对路径,这里通过拼接下载url进行索引(携带token及加密用户id作为参数)
生成相应资源的压缩包,并返回路径
调用 uni.downloadFile 获取文件临时存放路径,再用 uni.saveFile 保存文件到本地,拿到文件存放的本地路径
在localStorage对路径进行存储,已经缓存过的就直接更新路径
查看缓存时,通过索引获取缓存过的内容(这和上一步的setStorage是对应的)
查看具体某个文件时,需要检查当前是 IOS 还是安卓,IOS 使用 html5Plus 进行解压,安卓系统需要使用 zip4j(需要到插件市场安装) 进行解压,获取到解压后路径直接打开即可