收藏
回答

wx.chooseImage()在真机环境下获取同一张图片两次的路径不一致

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.chooseImage 客户端 6.7.3 2.4.2

把相册设为图片背景的时候没问题,但是过了一段时候再去看,背景图就变成白屏了,不知道是为甚么,个人预估是因为在真机上的两次图片的路径不一致的原因

这是获取相册图片的代码

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; */

}





最后一次编辑于  2018-12-18  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • philly
    philly
    2018-12-18

    这种不应该走后端的吗?还是你不想走后端

    2018-12-18
    赞同
    回复 8
    • 艾夜
      艾夜
      2018-12-18

      怎么走后端呀。。不是直接拿到路径调用就行了嘛。。

      2018-12-18
      回复
    • philly
      philly
      2018-12-18回复艾夜

      你选择图片后不上传到你们的服务器的吗?

      2018-12-18
      回复
    • 艾夜
      艾夜
      2018-12-18回复philly

      虽然这个方法也行,但是用户自定义自己的背景图这种东西就没有必要传图片到服务器了吧。。

      2018-12-18
      回复
    • philly
      philly
      2018-12-18回复艾夜

      存本地不能存微信这个地址的,他们给的都是临时路径,你可以转一下

      2018-12-18
      回复
    • 艾夜
      艾夜
      2018-12-18回复philly

      嗯嗯,是用saveFile()吧,已经有回答告诉我用这个了,不过谢谢你的解答

      2018-12-18
      回复
    查看更多(3)
  • 卢霄霄
    卢霄霄
    2018-12-18

    这个只是个临时路径,随时会被清理的啊

    2018-12-18
    赞同
    回复 3
    • 艾夜
      艾夜
      2018-12-18

      那么怎么才能解决这个问题呢。。

      2018-12-18
      回复
    • 卢霄霄
      卢霄霄
      2018-12-18回复艾夜

      如果不需要考虑用户清理微信缓存,不考虑用户换手机。

      可以用wx.saveFile存起来,然后把路径存在storage里;

      可以转成base64,然后存在storage里;

      2018-12-18
      回复
    • 艾夜
      艾夜
      2018-12-18回复卢霄霄

      嗯嗯,谢谢解答

      2018-12-18
      回复
  • 拾忆
    拾忆
    2018-12-18

    本来就是临时路径,可能是过一段时间缓存被清空了。

    2018-12-18
    赞同
    回复 2
    • 艾夜
      艾夜
      2018-12-18

      那么怎么才能解决这个问题呢。。

      2018-12-18
      回复
    • 艾夜
      艾夜
      2018-12-18回复艾夜

      而且在真机上选择图片我是连续选择两次,就算缓存被清空也没这么快吧。。

      2018-12-18
      回复