微信小程序获取小程序二维码显示+生成海报

1.最便捷的方法,把参数发给后台,后台获取到二维码并保存后把链接地址发到前台。

2.实在没有办法,后台也不愿意做,那请移步:


getQRcode: function () {

    return new Promise((resolve, reject) => {

      const that = this;

      wx.request({

        url: 'https://XXXXXXXXXXXXXXXX',  //获取access_token,注意,这个东西一定要后台去管理,然后开接口返回给前台

        method: 'GET',

        success: function (res) {

          if (res.data.err == 0) {

            return new Promise((resolve, reject) => {

              wx.request({   //这里就不要尝试网上的方法用wx.downloadFile 去下载了,因为这玩意儿只支持GET

                url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + res.data.data,

                method: 'POST',

                data: {

                  scene: 'id=1',// + that.data.id,

                  page: 'pages/index/'

                },

                responseType: 'arraybuffer',  //这个一定要写,这边是转贴

                success: function (res) {

                  if (res.errMsg == 'request:ok') {

                    var base64 = "data:image/jpeg;base64," +wx.arrayBufferToBase64(res.data); 

                    base64src( base64);  //这玩意是存本地临时的,给生成海报用的

                    that.setData({

                      qrCode: base64 //这玩意儿,可以直接放在里,就可以显示

                    });

                    resolve();

                  }

                  else {

                    wx.hideLoading();

                    wx.showModal({

                      title: "获取小程序二维码失败,请稍候重试",

                      showCancel: false

                    })

                  }

                },

              })

            });

          }

          else {

            wx.hideLoading();

            wx.showModal({

              title: "获取小程序二维码失败,请稍候重试",

              showCancel: false

            })

          }

        },

      })

    });

  },


这个js是猫哥提供的,感谢

原贴:https://www.cnblogs.com/kaiye/p/9909304.html

base64src.js //把base64的图片存本地临时文件夹,文件名:tmp_base64src.jpeg

const fsm = wx.getFileSystemManager();

const FILE_BASE_NAME = 'tmp_base64src';

const base64src = function(base64data) {

  return new Promise((resolve, reject) => {

    const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];

    if (!format) {

      reject(new Error('ERROR_BASE64SRC_PARSE'));

    }

    const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;

    const buffer = wx.base64ToArrayBuffer(bodyData);

    fsm.writeFile({

      filePath,

      data: buffer,

      encoding: 'binary',

      success() {

        resolve(filePath);

      },

      fail() {

        reject(new Error('ERROR_BASE64SRC_WRITE'));

      },

    });

  });

};

module.exports = {

  base64src: base64src

}



生成海报的时候:wx.env.USER_DATA_PATH + "/tmp_base64src.jpeg"   就是路径

用wxml-to-canvas这个可以了

你可能感兴趣的:(微信小程序获取小程序二维码显示+生成海报)