我们开发过程中为了提高客户体验,在无网络进入APP的时候也要显示用户的头像等, 我们就要吧图片下载到本地 达到无网络显示的效果
uni-app图片下载到本地有一个坑,需要把图片下载下来拿到临时路径再转换为永久地址才可以 想直接用临时路径的就会显示出来乱七八糟的图片
尤其是频繁更换的图片 千万别使用临时路径!!!!
// 下载头像图片到本地
function cacheHeadImg(_this, urlPrefix, callback) {
uni.downloadFile({//获取本地临时路径
url, //下载的图片地址
success: (res) => {
if (res.statusCode === 200) {
uni.saveFile({ //获取本地永久路径
tempFilePath: res.tempFilePath//临时路径
success: (oneRes) => {
// 删除本地缓头像存文件
在这需要判断一下上次的本地路径如果和本次生成路径一样就不删除了
文件会直接覆盖 因为在这时候本地路径已经生成如果不判断直接删除可能会把本次生成路径对应文件删除掉
uni.removeSavedFile({
filePath: cacheImg,
success: res => {
console.log("删除成功")
},
fail: err => {
console.log("删除失败")
},
});
console.log("成功下载头像路径", oneRes.savedFilePath);
callback(oneRes.savedFilePath)
},
fail: (err) => {
callback(err)
}
});
}
},
fail: err => {
console.log("下载图片失败")
},
});
}
错误回调自己想要的话加上
小伙伴们退出账号的时候记得删除本地缓存文件