(一)先到GitHub把qrcode.js的代码copy下来
其他脚本可能会有地址长度限制的问题,这个亲测有效
https://github.com/demi520/wxapp-qrcode
(二)在项目js文件中引入
let QR = require("xxxx/qrcode.js") // require方式 import QR from 'xxxx/qrcode.js' // es6的方式(三)创建canvas节点,以及设置canvas-id
*注:canvas节点可以用visibility控制不显示,但一定要存在这个节点,二维码可以用canvas绘制,也可以获取路径之后,赋值给image标签的src属性
<canvas style="width: 200px;height: 200px;" canvas-id="mycanvas" />(四)定义绘制二维码的方法
methods: { createQrCode: function(content, canvasId, cavW, cavH) { //调用插件中的draw方法,绘制二维码图片 //this.canvasToTempImage 为绘制完成的回调函数,可根据自己的业务添加 QR.api.draw(content, canvasId, cavW, cavH, this, this.canvasToTempImage); }, //获取临时缓存图片路径,存入data中 canvasToTempImage: function(canvasId) { wx.canvasToTempFilePath({ canvasId, // 这里canvasId即之前创建的canvas-id success: (res) => { let tempFilePath = res.tempFilePath; // 这里可以获取到生成二维码的图片地址 console.log(tempFilePath); }, fail: (res) => { console.log(res); } }); } },(五)在onload方法中调用绘制二维码的方法
onLoad(options) { this.pageDate = JSON.parse(options.data) this.applicationType = this.pageDate.type this.createQrCode( 'https://www.baidu.com/', 'mycanvas', 200, 200) },(六)效果图