分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

前端QRCode.js生成二维码(解决长字符串模块和报错问题)

发布时间:2023-09-21 12:36责任编辑:郭大石关键词:js前端二维码

QRCode

用法

1.使用npm安装到你的项目中 npm install qrcode2 --save

  1. 使用commonjs或者es6模块方式导入
var QRCode = require('qrcode2');// 或者import QRCode from 'qrcode2';

3 . 实例化QRCode对象

new QRCode(document.getElementById('qrcode'), 'http://www.baidu.com');//// 或者配置一些选项var qrcode = new QRCode(document.getElementById("qrcode"), { ???text: "http://www.baidu.com", ???width: 128, ???height: 128, ???colorDark : "#000", ???colorLight : "#fff", ???correctLevel : QRCode.CorrectLevel.H});

参数

参数默认值说明备注
textstring二维码内容字符串如果是url的话,为了微信和QQ可以识别,连接中的中文使用encodeURIComponent进行编码
width256图像宽度单位像素(百分比不行)
height256图像高度单位像素(百分比不行)
colorDark‘#000‘二维码前景色英文\十六进制\rgb\rgba\transparent都可以
colorLight‘#fff’二维码背景色英文\十六进制\rgb\rgba\transparent都可以
correctLevelQRCode.CorrectLevel.L容错级别由低到高 .L M Q H

方法

clear:清除QR code
makeCode(text: String):重新绘制QR code (仅在不支持 Canvas 的浏览器下有效)

常见bug1 长字符串显示模糊问题

  1. 问题原因:
    显示模糊的问题,是canvas的问题。由于字符串比较长,尤其是需要传一个连接地址,后面还加一些参数的时候,就会加大二维码的像素复杂度,而本身canvas在绘制的时候,就一直有像素模糊的问题,尤其是在手机上的时候

  2. 解决方法:
    先将生成的二维码进行倍数扩大,然后在css上面固定其显示宽高,这样就可以扩大显示像素精度。

js放大

var qrcode = new QRCode(document.getElementById("qrcode"), { ???text: "http://www.baidu.com", ???width: 128 * 5, ?// 相应宽高扩大5倍 ???height: 128 * 5, ???colorDark : "#000", ???colorLight : "#fff", ???correctLevel : QRCode.CorrectLevel.H});

css固定宽高
可以给canvas 和 img 固定为 128* 128的大小
也可以在包裹#qrcode 的容器上固定128* 128的大小 里面内容100%
比如

.qrcode-out {width: 128px;height: 128px;}canvas,img {width:100%;height: 100%;}

常见bug2 因为url太长,导致二维码加载报错

一般报错提醒 Error: code length overflow. (1756>1056)

一般都是容错率设置为最高导致的,此时把容错率调低一级便可以
correctLevel : QRCode.CorrectLevel.Q

前端QRCode.js生成二维码(解决长字符串模块和报错问题)

原文地址:https://www.cnblogs.com/whkl-m/p/10797776.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved