微信小程序码生成,wx.arrayBufferToBase64不能用了

最近接触到微信生成小程序码的项目,依照小程序开发文档依葫芦画瓢,发现腾讯给我们留了一个大坑。

 官方接口返回给我们的小程序码是图片数据流ArrayBuffer,然后它这个wx.arrayBufferToBase64(ArrayBuffer arrayBuffer)接口就这么不能用了,法克。

几经折腾,终于可以正常实现生成小程序码了,不说废话,上代码

//首先利用官方接口获取小程序码图片流数据(access_token要先拿到)
wx.request({
      url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='+access_token,
      method: 'POST',
     responseType: 'arraybuffer',
      
      data: {
        scene: 'id=1',//你的参数
        page: 'pages/index/index',
        check_path:false,
        env_version:'trial',
        width: 200,
        is_hyaline: true
      },
      header: {
        'content-type': 'application/json'
      },
      //success: function (res)
      success:(res)=> {
        // 现在拿到的是小程序码二进制流数据buffer,将buffer写入临时文件路径,然后绑定到页面的data属性
        console.log(res.data);
        let buffer=res.data;
        let fileMananger=wx.getFileSystemManager();
        let filePath=wx.env.USER_DATA_PATH+'/qr.jpeg';
        console.log(filePath);
        fileMananger.writeFile({
          filePath:filePath,
          encoding:"binary",
          data:buffer,
          success:(res)=>{
            console.log(res);
            console.log(filePath);
            this.setData({
              qrcodeUrl:filePath
            })
          },
          fail: function (err) {
            console.log(err);
          }
        })

这样一来我就在前端就可以生成了,看效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值