qrcode生成二维码微信长按无法识别问题的解决


Posted in Javascript onApril 04, 2019

最近用QRCode.js 生成二维码之后,发现在小米和华为手机的微信上面页面长按识别不了,苹果和其他手机浏览器是正常的。qrcode在页面生成会生成一个canvas标签和一个img标签,在电脑浏览器上调试的时候发现生成二维码之后canvas标签是会自动隐藏的,然后展示img标签,然后通过vConsole 发现在小米或者华为手机上生成的二维码是通过canvas展示的,img标签被隐藏,而且img.src没有任何内容。怀疑是浏览器兼容问题。

jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery 插件((可以从https://github.com/jeromeetienne/jquery-qrcode 获取)),它使用非常简单,生成的 QRcode 无需下载图片,并且不依赖第三方服务,插件压缩之后大小小于 4K。

QRCode.js 基本用法

引入JS库

<script src="jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script>
 <script src="jquery.qrcode.min.js" type="text/javascript" charset="utf-8"></script>

html部分

<div id="qrcode"></div>

js部分

// 设置要生成二维码的链接
new QRCode(document.getElementById("qrcode"), codeUrl);

或者

var qrcode = new QRCode("qrcode", {
 text: codeUrl,
 width: 128,
 height: 128,
 colorDark : "#000000",
 colorLight : "#ffffff",
 correctLevel : QRCode.CorrectLevel.H //容错级别
});

容错级别,可设置为:
QRCode.CorrectLevel.L
QRCode.CorrectLevel.M
QRCode.CorrectLevel.Q
QRCode.CorrectLevel.H

清除重新生成

qrcode.clear(); // clear the code.
qrcode.makeCode("http://naver.com"); // make another code.

浏览器支持

IE6~10, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile, ETC.

长按识别方式

解决思路是从canvas中提取图片base64自己生成图片

html部分

<div id="codeDiv" style="display: none;"></div>
<div id="qrcode"></div>

js部分

var qrcode = new QRCode("codeDiv", {
  text: codeUrl,
  render: "canvas", //渲染方式指定canvas方式
  width: 128,
  height: 128,
  typeNumber:-1,//计算模式
  colorDark : "#000000", 
  colorLight : "#ffffff", 
  correctLevel : QRCode.CorrectLevel.H 
 });
 var canvas=document.getElementsByTagName('canvas')[0];
 var img = convertCanvasToImage(canvas);
 $('#qrcode').append(img);// 添加DOM
 //从 canvas 提取图片 image 
 function convertCanvasToImage(canvas) { 
  //新建Image对象
  var image = new Image(); 
  // canvas.toDataURL 返回的是一串Base64编码的URL
  image.src = canvas.toDataURL("image/png"); 
  return image; 
 }

参考

QRCode.js 二维码生成并能够长按识别
GitHub

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
xml和web特殊字符
Apr 28 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
javascript动态加载实现方法一
Aug 22 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
Aug 01 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
基于gulp合并压缩Seajs模块的方式说明
Jun 14 Javascript
jQuery弹出遮罩层效果完整示例
Sep 13 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 #jQuery
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 #Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 #Javascript
Vue传参一箩筐(页面、组件)
Apr 04 #Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
Apr 04 #Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 #Javascript
Vue组件内部实现一个双向数据绑定的实例代码
Apr 04 #Javascript
You might like
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
PHP 写文本日志实现代码
2010/05/18 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
跟我学Laravel之路由
2014/10/15 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
Python 不同对象比较大小示例探讨
2014/08/21 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
Python生成器常见问题及解决方案
2020/03/21 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
Java程序员常见面试题
2015/07/16 面试题
仓库管理专业个人自我评价范文
2013/11/11 职场文书
年度考核自我评价
2014/01/25 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
《悯农》教学反思
2014/04/28 职场文书
公务员培的训心得体会
2014/09/01 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书