美文网首页
微信小程序获取小程序二维码显示+生成海报

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

作者: 天上掉陷阱 | 来源:发表于2020-05-12 11:48 被阅读0次

    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 //这玩意儿,可以直接放在<image src" {{qrCode}} " />里,就可以显示

                        });

                        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这个可以了

    相关文章

      网友评论

          本文标题:微信小程序获取小程序二维码显示+生成海报

          本文链接:https://www.haomeiwen.com/subject/glxbnhtx.html