weapp-qrcode
weapp.qrcode.js 在 微信小程序 中,快速生成二维码。
Usage
<canvas style="width: 200px; height: 200px;" canvas-id="myQrcode"></canvas>
复制代码
在项目中我使用的是wepy框架,所以直接安装weapp-qrcode npm包。
命令:
npm install weapp-qrcode --save
复制代码
import drawQrcode from 'weapp-qrcode'
drawQrcode({
width: 200,
height: 200,
canvasId: 'myQrcode',
text: 'https://github.com/yingye'
})
复制代码
写到这目前可以生成二维码了=_=
坑了来。。。。
canvas只有一个id,可以生成不同的二维码,但是不能再同一个画布并列生成多个,因为id是唯一的只能生成一个。 所以我做了以下处理
drawQrcode({
width: '200',
height: '200',
canvasId: e.currentTarget.dataset.id + new Date().getTime(),
text: couponCode,
success: res=> {
console.log(res)
}
})
复制代码
canvasId是每个优惠券的id,我点击每个优惠券会生成对应的二维码,但是再次点击就不展示二维码了, 所以我在后面拼接了时间戳,每次点击都会生成对应的二维码
eg:
API
参数 | 说明 | 示例 |
---|---|---|
width | 必须,二维码宽度,与canvas 的width 保持一致 | 200 |
height | 必须,二维码高度,与canvas 的height 保持一致 | 200 |
canvasId | 非必须,绘制的canvasId | 'myQrcode' |
ctx | 非必须,绘图上下文,可通过 wx.createCanvasContext('canvasId') 获取,v1.0.0+版本支持 | 'wx.createCanvasContext('canvasId')' |
text | 必须,二维码内容 | 'https://github.com/yingye' |
typeNumber | 非必须,二维码的计算模式,默认值-1 | 8 |
correctLevel | 非必须,二维码纠错级别,默认值为高级,取值:{ L: 1, M: 0, Q: 3, H: 2 } | 1 |
background | 非必须,二维码背景颜色,默认值白色 | '#ffffff' |
foreground | 非必须,二维码前景色,默认值黑色 | '#000000' |
_this | 非必须,若在组件中使用,需要传入,v0.7.0+版本支持 | this |
callback | 非必须,绘制完成后的回调函数,v0.8.0+版本支持。安卓手机兼容性问题,可通过自行设置计时器来解决,更多可以参考 issue #18 | function (e) { console.log('e', e) } |
x | 非必须,二维码绘制的 x 轴起始位置,默认值0,v1.0.0+版本支持 | 100 |
y | 非必须,二维码绘制的 y 轴起始位置,默认值0,v1.0.0+版本支持 | 100 |
image | 非必须,在 canvas 上绘制图片,层级高于二维码,v1.0.0+版本支持,更多可参考drawImage | { imageResource: '', dx: 0, dy: 0, dWidth: 100, dHeight: 100 } |