weapp-qrcode:微信小程序生成二维码工具
weapp-qrcode 是一个微信小程序二维码生成工具,基于 davidshimjs/qrcodejs 改写,使其二维码绘制功能可在微信小程序中通过 canvas 使用。项目提供自适应(rpx)与非自适应两种用法示例,支持设置二维码文本、尺寸、明暗颜色与纠错级别,并可通过 makeCode 重新生成二维码。
社区作者 · zZz
它解决什么问题
weapp-qrcode 是 tomfriwel 开源的微信小程序二维码生成工具。其生成二维码数据的主要代码来自 davidshimjs/qrcodejs,由于原项目生成二维码图片的功能在微信小程序里不能使用,作者将其改写成可在微信小程序中使用的实现。
用途:在微信小程序内通过 canvas 绘制二维码,支持长按保存等交互。项目仓库提供两种使用方式:非自适应版本(完整代码参考 pages/index/index)和自适应版本(使用 rpx 为单位,完整代码参考 pages/responsive/responsive)。
核心参数:text 为需要转化为二维码的字符串;width 和 height 为绘制出的二维码长宽;colorDark 和 colorLight 为二维码交替的两种颜色;correctLevel 为纠错级别(示例使用 QRCode.CorrectLevel.H);usingIn 为可选参数,在自定义组件中使用时可能失效,详情见 issue #1。
自适应版本中,canvas 的长宽通过 rpx2px 计算获得,wxml 中 canvas 的 style 使用 {{qrcodeWidth}}px,wxss 中的 canvas 样式不再设置长宽,从而在不同设备上达到自适应效果。非自适应版本则需要在 wxss 里设置与初始化时同等的长宽。
配图 6 为主流程示意图;配图 1 至配图 5 为项目截图与测试图,其中配图 5 对应背景图测试页面 pages/test/test。需要再次生成二维码时,调用 qrcode.makeCode('text you want convert')。仓库主要流程部分标注为 TODO,并列出参考项目 https://github.com/SumiMakito/Awesome-qr.js。
许可证信息在来源正文中未明确说明,需以仓库实际 LICENSE 文件为准。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
- 准备环境:安装微信开发者工具,创建或打开一个微信小程序项目。
- 引入脚本:将 utils/weapp-qrcode.js 复制到小程序项目的 utils 目录;如需自适应版本,同时引入 utils/rpx2px.js。完整示例代码参考 pages/index/index(非自适应)与 pages/responsive/responsive(自适应)。
- 非自适应用法:在页面 wxml 中放置绘制二维码的 canvas:<canvas class='canvas' canvas-id='canvas' bindlongtap='save'></canvas>。
- 在页面 js 中引入:var QRCode = require('../../utils/weapp-qrcode.js')。
- 页面加载好后初始化:var qrcode = new QRCode('canvas', { text: 'https://github.com/tomfriwel/weapp-qrcode', width: 150, height: 150, colorDark: '#000000', colorLight: '#ffffff', correctLevel: QRCode.CorrectLevel.H });。第一个参数传入 wxml 中二维码 canvas 的 canvas-id,width 和 height 单位为 px,需设置为跟 canvas 同样的长宽。
- 在 wxss 中设置同等长宽,例如初始化长宽为 150 时:.canvas { width: 150px; height: 150px; }。
- 自适应用法:const QRCode = require('../../utils/weapp