前言
在近期的小程式開發中,有一個離線生成二維碼的需求。當時想到了一些優秀的前端開源庫 jquery-qrcode 和 node-qrcode,由於小程式中沒有DOM的概念,這些庫在小程式中並不適用。
所以,針對微信小程式的特點,封裝了 weapp.qrcode.js ,用於在小程式中快速生成二維碼。效果如下圖:
下面來介紹一下使用方法:
使用
建立canvas標籤
先在 wxml 檔案中,建立繪製的 canvas
,並定義好 width
, height
, canvasId
。由於小程式沒有動態建立標籤的api,所以這一步不能省略。
<canvas style="width: 200px; height: 200px;" canvas-id="myQrcode"></canvas>
複製程式碼
呼叫繪製方法
由於微信小程式不支援引入NPM包,可以將dist目錄下,weapp.qrcode.min.js 拷貝至專案中。
如果你的小程式使用了支援引入NPM包的框架,如 wepy , 也可以直接安裝 weapp-qrcode NPM包。
npm install weapp-qrcode --save
複製程式碼
引入 js 檔案後,呼叫 drawQrcode()
繪製二維碼。
import drawQrcode from 'weapp-qrcode'
// 或者,將 dist 目錄下,weapp.qrcode.min.js 複製到專案目錄中
// import drawQrcode from '../../utils/weapp.qrcode.min.js'
drawQrcode({
width: 200,
height: 200,
canvasId: 'myQrcode',
text: 'https://github.com/yingye'
}
複製程式碼
API說明
引數 | 說明 | 示例 |
---|---|---|
width | 必須,二維碼寬度,與canvas 的width 保持一致 |
200 |
height | 必須,二維碼高度,與canvas 的height 保持一致 |
200 |
canvasId | 必須,繪製的canvasId |
'myQrcode' |
text | 必須,二維碼內容 | 'https://github.com/yingye' |
typeNumber | 非必須,二維碼的計算模式,預設值-1 | 8 |
correctLevel | 非必須,二維碼糾錯級別,預設值為高階,取值:{ L: 1, M: 0, Q: 3, H: 2 } |
1 |
background | 非必須,二維碼背景顏色,預設值白色 | '#ffffff' |
foreground | 非必須,二維碼前景色,預設值黑色 | '#000000' |
如果想更深入的瞭解二維碼的原理,推薦大家閱讀 二維碼的生成細節和原理 。
原始文件
https://github.com/yingye/weapp-qrcode ,如果覺得還不錯,記得給個star奧~