微信小程序开发:文字转二维码
使用开源组件:weapp-qrcode-canvas-2d
亲测渲染性能,生成速度等均优于其他小程序实现方式,虽然star较少,但是目前没发现什么问题
以下内容摘自github项目readme.md文档
weapp-qrcode-canvas-2d
weapp-qrcode-canvas-2d 是使用新版canvas-2d接口在微信小程序中生成二维码(外部二维码)的js包。canvas 2d 接口支持同层渲染且性能更佳,建议切换使用,可大幅提升速度。
仓库地址
- weapp-qrcode-canvas-2d【码云gitee】
- weapp-qrcode-canvas-2d【github】
测试环境
- 微信小程序基础库版本:2.10.4
- 开发者工具版本:Stable 1.03.2101150
Usage
先在 wxml 文件中,创建绘制的 canvas
,并定义好 width
, height
, id
, type
,其中type的值必须为2d
<canvas type="2d" style="width: 260px; height: 260px;" id="myQrcode"></canvas>
安装方法1:直接引入 js 文件
直接引入 js 文件,使用 drawQrcode()
绘制二维码
// 将 dist 目录下,weapp.qrcode.esm.js 复制到项目中。路径根据实际引用的页面路径自行改变import drawQrcode from '../../utils/weapp.qrcode.esm.js'
安装方法2:npm安装
npm install weapp-qrcode-canvas-2d --save
// 然后需要在小程序开发者工具中:构建npm
import drawQrcode from 'weapp-qrcode-canvas-2d'
安装完成后调用
例子1:没有使用叠加图片
const query = wx.createSelectorQuery()
query.select('#myQrcode').fields({node: true,size: true}).exec((res) => {var canvas = res[0].node// 调用方法drawQrcode生成二维码drawQrcode({canvas: canvas,canvasId: 'myQrcode',width: 260,padding: 30,background: '#ffffff',foreground: '#000000',text: '大王顶真帅',})// 获取临时路径(得到之后,想干嘛就干嘛了)wx.canvasToTempFilePath({canvasId: 'myQrcode',canvas: canvas,x: 0,y: 0,width: 260,height: 260,destWidth: 260,destHeight: 260,success(res) {console.log('二维码临时路径:', res.tempFilePath)},fail(res) {console.error(res)}})})
例子2:使用叠加图片(在二维码中加logo)
const query = wx.createSelectorQuery()query.select('#myQrcode').fields({node: true,size: true}).exec(async (res) => {var canvas = res[0].nodevar img = canvas.createImage();img.src = "/image/logo.png"img.onload = function () {// img.onload完成后才能调用 drawQrcode方法var options = {canvas: canvas,canvasId: 'myQrcode',width: 260,padding: 30,paddingColor: '#fff',background: '#fff',foreground: '#000000',text: 'https://gitee.com/w386888618/weapp-qrcode-canvas-2d',image: {imageResource: img,width: 80, // 建议不要设置过大,以免影响扫码height: 80 // 建议不要设置过大,以免影响扫码round: true // Logo图片是否为圆形}}drawQrcode(options)// 获取临时路径(得到之后,想干嘛就干嘛了)wx.canvasToTempFilePath({x: 0,y: 0,width: 260,height: 260,destWidth: 600,destHeight: 600,canvasId: 'myQrcode',canvas: canvas,success(res) {console.log('二维码临时路径为:', res.tempFilePath)},fail(res) {console.error(res)}})};})
API
drawQrcode([options])
options
Type: Object
参数 | 必须 | 说明 | 示例 |
---|---|---|---|
canvas | 必须 | 画布标识,传入 canvas 组件实例 | |
canvasId | 非 |
绘制的canvasId
|
'myQrcode'
|
text | 必须 | 二维码内容 | ‘https://github.com/DoctorWei/weapp-qrcode-canvas-2d’ |
width | 非 |
二维码宽度,与canvas 的width 保持一致
|
260 |
padding | 非 | 空白内边距 | 20 |
paddingColor | 非 | 内边距颜色 | 默认与background一致 |
background | 非 | 二维码背景颜色,默认值白色 |
'#ffffff'
|
foreground | 非 | 二维码前景色,默认值黑色 |
'#000000'
|
typeNumber | 非 | 二维码的计算模式,默认值-1 | 8 |
correctLevel | 非 |
二维码纠错级别,默认值为高级,取值:{ L: 1, M: 0, Q: 3, H: 2 }
|
1 |
image | 非 | 在 canvas 上绘制图片,层级高于二维码,v1.1.1+版本支持。具体使用见:例子2 |
{imageResource: '', width:80, height: 80, round: true}
|
TIPS
weapp-qrcode-canvas-2d 参考以下源码
- 参考 weapp-qrcode
- 参考 jquery-qrcode
微信小程序开发:文字转二维码相关推荐
- 微信小程序使用canvas绘制二维码实现跳转小程序
开始接到这个需求的时候,我查阅文档获取小程序码 | 微信开放文档 发现两种途径 需要后端在服务器上调用接口拿到二维码,因为调用的 https://api.weixin.qq.com这个域名是不允许上白 ...
- 微信小程序长按识别二维码,小程序相关问题总结
微信小程序长按识别二维码,小程序相关问题总结 开发小程序中,长按识别二维码,小程序码跳转,已知问题整理: 小程序中,不支持长按识别二维码,和小程序码. 可利用小程序 图片预览功能识别 小程序码并进行跳 ...
- 微信小程序业务-字符串生成二维码(weapp-qrcode)
微信小程序业务-字符串生成二维码(weapp-qrcode) 前言 邂逅weapp-qrcode 基本使用 详细参数 小程序组件中使用 image属性详解 想使用网络图片? 参考地址 前言 在小程序项 ...
- 微信小程序使用weapp-qrcode生成二维码
<canvas style="width:108rpx;height:108rpx; canvas-id='qrcode'></canvas> // weapp-qr ...
- 『小程序开发』关于微信小程序扫普通链接二维码打开小程序的具体配置流程...
前言: 对于扫普通链接二维码打开小程序的功能详解,官方api已经可以说是接近手把手的教学,咱们这里不做累述,直接上图走起...官方接入指南 功能介绍 扫二维码登录小程序...^_^ 限制 1.对于普通 ...
- 微信小程序订单生成支付二维码接口 code
手机的小程序订单是直接拉起支付界面的,有些朋友需要生成支付二维码 这边就需要去调用微信的支付二维码接口了 需要的参数是 session_id, timeStamp, nonceStr, package ...
- uni-app微信小程序生成自定义参数二维码,跳转小程序指定页面,获取参数;uni-app微信小程序获取二维码自定义参数;微信小程序生成动态参数二维码;uni-app微信小程序获取动态参数二维码;
一.场景需求: 在小程序个人名片页面A页面,生成用户的个人名片二维码(该二维码携带用户的唯一标识id):微信扫一扫或长按图片识别这个二维码,可以跳转到小程序的B页面,并且在B页面拿到二维码上的唯一标识 ...
- 山东大学项目实训(四)—— 微信小程序扫描web端二维码实现web端登录
效果 点击登录后,显示二维码→打开"探古"(本项目)微信小程序,扫描二维码确认登录→web端登录成功 主要流程 因为本人主要负责web前端的开发,所以本文仅介绍web前端的实现方法 ...
- 微信小程序——weapp-qrcode.js生成二维码、海报二维码、核销码
各位小伙伴们,不知道你们在开发的时候有没有遇到小程序生成二维码,生成海报时候带上二维码.核销码等等. 那么,小程序端该如何生成二维码图片呢? 效果如下: weapp-qrcode.js 小伙伴们可以来 ...
- uniapp 微信小程序长按识别二维码,跳转小程序、个人微信
前言: 业务要求是小程序放一个二维码图片,长按可以识别二维码,进而识别出个人微信,添加个人微信:我们可以通过uni.previewImage(OBJECT)或者wx.previewImage(Obje ...
最新文章
- 网络入侵检测规避工具fragrouter
- 基于 Java 2 运行时安全模型的线程协作--转
- 学习笔记-------两阶段提交 2PC
- linux环境下创建postgis数据库,linux下搭建postgresql、postgis、pg_pathman环境步骤详解...
- 安岳天气预报软件测试,安岳天气预报15天
- 下拉默认选择_在Excel中制作二级联动下拉菜单,太有用了
- 图片相框展示的设计与实现
- 忘却的旋律java2_[17-8-10]【复杂问题】打不开游戏
- 企业微信应用设置可信域名_企业微信更新版本 全平台内容可设置成英文
- 机械优化设计进退法c语言程序,机械优化设计powell法程序
- 角点 python实现_100行代码,带你玩转OpenCV-Python基础API
- SPSS24.0输了授权码还不能用怎么破?
- 递归的经典例子 java_java递归算法经典实例
- 捷联惯导系统模型及仿真(三)
- 晶振工作原理与元件选型
- 为你的Android应用构建窗口小部件(App Widget)
- NetBeans IDE使用方法
- MATLAB遗传算法解决旅行商(TSP)问题
- 计算机网络(十九)其他IP相关技术
- 【附源码】计算机毕业设计JAVA医院病历管理系统
热门文章
- 如何将Windows XP SP3改成SP2
- 应用篇1.3 后台登陆界面设计
- Neo4jOgm2.1的使用
- joyui版本和android版本,黑鲨手机2 Pro 最新JOYUI12 DLTR2010300CN00MQ4 完美root 游戏宏功能 狩猎模式 精品刷机...
- 【Unity2019】利用Vuforia在安卓平台调用UVC相机
- python猜拳小游戏实验报告_Java猜拳小游戏程序设计实验报告
- 中国地理位置四至点及计算方法
- buildroot 添加 loongarch 2k1000la uboot kernel 编译问题
- AD FS是什么,用在什么场景,原理是什么?
- 汉语拼音的3种拼读方法