把相册设为图片背景的时候没问题,但是过了一段时候再去看,背景图就变成白屏了,不知道是为甚么,个人预估是因为在真机上的两次图片的路径不一致的原因
这是获取相册图片的代码
wx.chooseImage({
count: 1,
success: (res) => {
console.log(res.tempFilePaths[0]);
wx.setStorage({
key: 'backgroundImage',
data: res.tempFilePaths[0],
});
wx.showToast({
title: '设置成功',
});
},
})
图片作为背景图
<image class='bgd' src="{{backgroundImage}}" mode='aspectFill' ></image>
Onshow时候会设置图片的路径
var BgiUrl = wx.getStorageSync('backgroundImage');
this.setData({
backgroundImage: BgiUrl != '' ? BgiUrl : "https://lg-n8uihw4i-1253681281.cos.ap-shanghai.myqcloud.com/kcb-bg.jpg"
});
.bgd {
width: 100%;
height: 100%;
position: fixed;
background-position: fixed;
filter: brightness(85%);
z-index: -1;
/* overflow: hidden; */
}
这种不应该走后端的吗?还是你不想走后端
怎么走后端呀。。不是直接拿到路径调用就行了嘛。。
你选择图片后不上传到你们的服务器的吗?
虽然这个方法也行,但是用户自定义自己的背景图这种东西就没有必要传图片到服务器了吧。。
存本地不能存微信这个地址的,他们给的都是临时路径,你可以转一下
嗯嗯,是用saveFile()吧,已经有回答告诉我用这个了,不过谢谢你的解答
这个只是个临时路径,随时会被清理的啊
那么怎么才能解决这个问题呢。。
如果不需要考虑用户清理微信缓存,不考虑用户换手机。
可以用wx.saveFile存起来,然后把路径存在storage里;
可以转成base64,然后存在storage里;
嗯嗯,谢谢解答
本来就是临时路径,可能是过一段时间缓存被清空了。
那么怎么才能解决这个问题呢。。
而且在真机上选择图片我是连续选择两次,就算缓存被清空也没这么快吧。。