在近期的小程序開發中,有一個離線生成二維碼的需求。當時想到了一些優秀的前端開源庫 jquery-qrcode 和 node-qrcode,因爲小程序中沒有DOM的概念,這些庫在小程序中並不適用。html
因此,針對微信小程序的特色,封裝了 weapp.qrcode.js ,用於在小程序中快速生成二維碼。效果以下圖:前端
下面來介紹一下使用方法:node
先在 wxml 文件中,建立繪製的 canvas
,並定義好 width
, height
, canvasId
。因爲小程序沒有動態建立標籤的api,因此這一步不能省略。jquery
<canvas style="width: 200px; height: 200px;" canvas-id="myQrcode"></canvas>
因爲微信小程序不支持引入NPM包,能夠將dist目錄下,weapp.qrcode.min.js 拷貝至項目中。git
若是你的小程序使用了支持引入NPM包的框架,如 wepy , 也能夠直接安裝 weapp-qrcode NPM包。github
npm install weapp-qrcode --save
引入 js 文件後,調用 drawQrcode()
繪製二維碼。shell
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' }
參數 | 說明 | 示例 |
---|---|---|
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' |
若是想更深刻的瞭解二維碼的原理,推薦你們閱讀 二維碼的生成細節和原理 。npm
https://github.com/yingye/wea... ,若是以爲還不錯,記得給個star奧~canvas