微信小程式中生成二維碼工具:weapp.qrcode.js

yingye發表於2018-02-03

前言

在近期的小程式開發中,有一個離線生成二維碼的需求。當時想到了一些優秀的前端開源庫 jquery-qrcodenode-qrcode,由於小程式中沒有DOM的概念,這些庫在小程式中並不適用。

所以,針對微信小程式的特點,封裝了 weapp.qrcode.js ,用於在小程式中快速生成二維碼。效果如下圖:

微信小程式中生成二維碼工具: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 必須,二維碼寬度,與canvaswidth保持一致 200
height 必須,二維碼高度,與canvasheight保持一致 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奧~

相關文章