微信小程序生成二维码

此例子可以生成二维码,但有问题就是安卓有兼容性(可以加延时器解决),但是目前是我见过最好使的了
Github 上面有代码案例,可以适用于多端

github链接 https://github.com/yingye/weapp-qrcode#readme

// 将 dist 目录下,weapp.qrcode.esm.js 复制到项目目录中
import drawQrcode from '../../utils/weapp.qrcode.esm.js'

drawQrcode({
  width: 200,
  height: 200,
  canvasId: 'myQrcode',
  // ctx: wx.createCanvasContext('myQrcode'),
  text: 'https://github.com/yingye',
  // v1.0.0+版本支持在二维码上绘制图片
  image: {
    imageResource: '../../images/icon.png',
    dx: 70,
    dy: 70,
    dWidth: 60,
    dHeight: 60
  }
})

微信小程序生成二维码_第1张图片
**typeNumber 这个是用来控制码字符长度的,默认的就可以了(支持长的字符转二维码)
考虑安卓的兼容性目前我是这样用的,我没有用canvans生成的二维码,因为安卓会出现不显示的情况转了图片的目前还没发现问题
**`

       drawQrcode({//画二维码
          width: 400/rate,
          height: 400/rate,
          canvasId: 'myQrcode',
          text: text,
          // v1.0.0+版本支持在二维码上绘制图片
          image: {
            imageResource: '/static/images/scan2.png',
            dx: 175/rate,
            dy: 175/rate,
            dWidth: 50/rate,
            dHeight: 50/rate
          },
          callback(e) {
            console.log('e: ', e)

          }
        })
        setTimeout(()=>{
          wx.canvasToTempFilePath({
            canvasId: 'myQrcode',
            success(res) {

              that.setData({
                ewmpath:res.tempFilePath
              })
            }
          })},1000)
                 
                      

**如果需要保存相册,可以用下面的代码**

  wx.saveImageToPhotosAlbum({
    filePath: that.data.ewmpath,
    success: function (res) {
      setTimeout(function () {
        wx.showToast({
          title: '获取二维码成功,并保存至相册。该码有效期为100秒,请及时完成付款操作!',
          icon: 'none',
          duration: 3000
        }) 
      }, 1000)

    },
    fail:function(res){
     // that.openConfirm();
      wx.showModal({
        title: '申请相册权限',
        content: '您尚未开启相册权限,请在右上角“···”-“设置”允许使用相册权限',
        showCancel:false,
        confirmColor: '#1A84F7',
        success(res) {
          if (res.confirm) {
          } else if (res.cancel) {
  
          }
        }
      })
    }
  });
//拒绝相册权限的处理
  openConfirm: function () {
    wx.showModal({
      content: '检测到您没打开相册权限,是否去设置打开?',
      confirmText: "确认",
      cancelText: "取消",
      success: function (res) {
        console.log(res);
        //点击“确认”时打开设置页面
        if (res.confirm) {
          console.log('用户点击确认')
          wx.openSetting({
            success: (res) => { }
          })
        } else {
          console.log('用户点击取消')
        }
      }
    });
  },

你可能感兴趣的:(小程序,canvas)