APP离线无网络显示图片 --- 本地下载图片

我们开发过程中为了提高客户体验,在无网络进入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("下载图片失败")
		},
	});
}

错误回调自己想要的话加上
小伙伴们退出账号的时候记得删除本地缓存文件

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值