收藏
回答

微信 Windows 版打开正式版小程序时为什么不保存、不显示图片?

从服务器端获取验证码图片并在小程序中显示出来,手机微信一切正常,但微信 Windows 版出现Bug。

经多次测试,微信 Windows 版运行小程序的开发版和体验版时,可以正常显示验证码。一旦运行正式版,就不再显示验证码图片

这个问题困扰我许久,跪求解决方案!

源码如下:

//发起请求。该域名已添加合法域名。手机微信使用小程序时完全没有问题。
//调试基础库2.11.0,线上最低基础库2.2.3。微信 Windows 版为3.2.1.154。
var that = this
wx.request({//API文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html
  url: 'https://xx.xxxxxx.com/api/kaptcha',
  responseType: 'arraybuffer',
  success: res => {
    var imgSrc = wx.arrayBufferToBase64(res.data); //API文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/base/wx.arrayBufferToBase64.html
    var number = Math.random();
//保存图片到本地。然而,微信 Windows 版打开正式版小程序时,保存到本地的并不是图片文件,而是大小为0KB的空白文件。打开体验版及开发版时均正常
    wx.getFileSystemManager().writeFile({//API文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.writeFile.html
      filePath: wx.env.USER_DATA_PATH + '/pic' + number + '.jpg',
      data: imgSrc,
      encoding: 'base64',
      success: re => {
//从本地读取图片
        wx.getFileSystemManager().readFile({//API文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.readFile.html
          filePath: wx.env.USER_DATA_PATH + '/pic' + number + '.jpg',
          encoding: 'base64',
          success: ress => {
            that.setData({
              codePath: "data:image/jpg;base64," + ress.data,
            })
          }
        })
      }
    })
  }
})
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容