uni-halo/utils/imageCache.js
2022-12-06 15:08:29 +08:00

53 lines
1.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 图片缓存
*/
/*
* @description 获取文件的缓存路径,如果文件未缓存,则直接返回网络路径,并下载缓存
* @method getImageCache
* @param {String} filePath 完整的图片下载路径,如果没有从缓存中获取到,则用这个路径去下载
* @param {String} fileMd5 文件md5必须唯一
* @return {Object} promise对象
*/
const getImageCache = (filePath, fileMd5) => {
// 图片缓存key值
let storageKey = 'IMAGE_CACHE_INFO_' + fileMd5
// 首先获取本地存储的数据,查询是否有对应文件路径,如果有缓存内容,直接返回
const cacheFileInfo = uni.getStorageSync(storageKey)
if (cacheFileInfo) {
// console.log("已缓存为:" + cacheFileInfo)
return cacheFileInfo
} else {
// console.log("未缓存,进行下载保存")
// 如果没有,执行下载,并存储起来后
uni.downloadFile({
url: filePath,
success: (res) => {
if (res.statusCode === 200) {
// console.log('下载成功');
// 再进行本地保存
uni.saveFile({
tempFilePath: res.tempFilePath,
success: function(res2) {
uni.setStorageSync(storageKey, res2.savedFilePath)
return res2.savedFilePath
},
fail: function(res2) {
return filePath
}
})
} else {
return filePath
}
},
fail: (res) => {
return filePath
}
})
}
}
export default {
getImageCache
}