123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import md5 from "./md5.min.js";
- import downLoadQueue from './download.js';
- /**
- * 图片缓存操作类
- */
- export class ImgCache {
- /**
- * 设置图片缓存
- * @param {String} imgUrl 网络图片地址
- */
- static async setCache(imgUrl) {
- // 创建图片下载任务
- let task = {
- // 图片路径
- filePath: ImgCache.createFilePath(imgUrl),
- url: imgUrl
- }
- // 添加图片下载任务
- downLoadQueue.add(task);
- }
- /**
- * 获取图片缓存
- * @param {String} imgUrl 网络图片地址
- */
- static getCache(imgUrl) {
- // 创建文件key值
- let filePath = ImgCache.createFilePath(imgUrl);
- return ImgCache.isExistFile(filePath);
- }
- /**
- * 拼接图片文件缓存路径
- * @param {String} imgUrl 网络图片地址
- */
- static createFilePath(imgUrl) {
- let fileName = md5(imgUrl);
- // #ifdef MP-WEIXIN
- return `${wx.env.USER_DATA_PATH}/${fileName}`;
- // #endif
- // #ifdef APP-PLUS
- return `_doc/imgCache/${fileName}`;
- // #endif
- }
- /**
- * 根据文件路径判断文件是否存在
- * @param {String} filePath 文件路径
- */
- static isExistFile(filePath) {
- return new Promise(resolve => {
- // #ifdef APP-PLUS
- plus.io.resolveLocalFileSystemURL(filePath, () => resolve(filePath), () => resolve(null));
- // #endif
- // #ifdef MP-WEIXIN
- uni.getFileSystemManager().readFile({
- filePath: filePath,
- success: (res) => {
- resolve(filePath)
- },
- fail: (res) => {
- resolve(null)
- }
- })
- // #endif
- })
- }
- }
|