识别规则

这里采用的逻辑是截屏识别,当客户端发现用户在网页的img标签内进行长按操作时,会立刻截屏并且启动二维码识别算法。所以这里用于二维码识别的图片是截屏,而不是之前有人提到的img标签中的图片。

为什么要用截屏,这也是一个开发时候的思考。客户端截屏时候,可以不用考虑网络传输等因素,最快的得到识别结果,否则就需要走一次图片下载的逻辑,用户长按后等待的时间会加长,体验上也失去了快感。当然,这也带来了识别不出的问题(所以正在考虑先截屏,截屏识别失败再下载的新逻辑)。

基于截屏识别,网页中二维码无法被识别的原因有这几个:

  • 1、二维码显示信息不全,在长按时候只有部分可见。
  • 2、二维码周围信息过于复杂,在整个截屏中二维码算法无法正确识别。
  • 3、网页没有加载完成,微信的识别js没有启动。

如果是普通用户遇到这样的问题,大不了就不玩了。但是对于运营者,每个长按的用户都是潜力用户,在距离接上头一步之遥的地方停住了,肯定内心万马漂过,有以下建议可以试试。

  • 1、二维码周围不要过于复杂,留白为佳。
  • 2、二维码不要太大,否则容易跳出屏幕。通常160*160就可以。

测试这个问题的方式,在遇到网页中二维码无法识别的时候,截屏,然后通过微信扫一扫导入这个截屏,看看是否也一样出问题。

当然,这个识别网页二维码,玩法多样,相当于开启了一个新的外跳方式。

二维码识别常见问题

1,在iOS 微信6.2.2识别的二维码的区域向上偏移了64px

这64px是微信内置浏览器标题栏 系统标题栏

二维码大到一定程度就没有“识别上移”的诡异现象了,大概是二维码大小在400px 以上的时候就没有

解决:

  • 1.通过img增加padding 增大可接触面积;这个需要微调
  • 2.为二维码图片本身增加透明底部背景,实际上就是把主要的二维码放在上面,下面给一块的透明的背景。这样他识别图片64px的时候正好是完整的图片。

2,两(多)张二维码无法在同一屏幕视窗中共存

如果屏幕上有两个二维码只能识别其中一个。实际上微信是把你的整个屏幕先截屏。再识别截屏后的图片。所以你的屏幕上的内容都会变成一个图片,即使不是一屏显示也不行。

解决:

  • 1、不把这些需要识别的二维码图片放在一个屏幕里。
  • 2、二维码设置为可以点击大图浏览,然后在大图浏览时,长按识别二维码

注:文章内容来源与网络参考,有不正确的地方会在以后的认识中逐步修正。

3,多次执行长按二维码的功能会导致内存泄漏,手机会变卡

4,网上看到的其它说法,可以在调试的时候都按照这种方式来尝试一下

  • 不要用fixed定位
  • 初始缩放值为1,最大缩放值大于或等于1,不支持缩放。不可以识别
<meta content="width=device-width, initial-scale=1, maximum-scale=1.2, user-scalable=0" name="viewport" />
  • 初始缩放设置为小于1或者大于1,最大缩放值大于或者等于初始缩放,不支持缩放。不可以识别
<meta content="width=device-width, initial-scale=1.1, maximum-scale=1.2, user-scalable=0" name="viewport" />
  • 初始缩放值为1,最大缩放值大于或等于1,不支持缩放。不可以识别
<meta content="width=device-width, initial-scale=1, maximum-scale=1.2, user-scalable=0" name="viewport" />
  • 都不设置 不可以识别

参考地址

网页中二维码识别规则

微信内置浏览器 长按识别二维码 的问题与解决方案

微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案

微信长按识别二维码bug整理

更多专业前端知识,请上 【猿2048】www.mk2048.com

网页中二维码识别规则相关推荐

  1. pdf中二维码识别的一种优化方案

    pdf中二维码识别的优化方案 ​ 博主平常所接触的业务基本都是围绕着各种财票,税票:要知道财税票的查验都需要票据的五要素,而二维码是我们能通过代码直接获取到票据五要素最直接的通道:加上国家推进票据的电 ...

  2. 仿商城商品生成分享海报图片和识别图中二维码并跳转商品详情页

    购物商城里面的商品分享给朋友的时候会生成一张海报图片,图片上附带这二维码图片,朋友拿到这张图片扫描上面的二维码就可以进入商品详情页查看此商品了.今天来做一下这种功能,先生成商品海报图片,然后长按这张图 ...

  3. 微信小程序长按图片,实现保存、转发、识别图中二维码

    在小程序image组件中二维码/小程序码图片不支持长按识别,仅在 wx.previewImage 中支持长按识别 但是通过wx.previewImage只能实现保存,转发,小程序 只能识别 小程序二维 ...

  4. 微信小程序生成海报中二维码-----长按识别不了问题及处理方案

    > 问题描述: 小程序某个页面中点击按钮,想要生成带有二维码的图片,后续保存本地.生成图片后转发微信中,后长按图片不会出现识别图中二维码的选项问题. 一年前写过一个分享页,当时大部分可以识别,只 ...

  5. 点击复制以及长按识别图中二维码功能

    功能介绍:1.点击复制按钮,复制指定内容:2.借助微信浏览器识别图中二维码.效果如图: 功能介绍 点击复制功能 前提:引入clipboard.js html <div class="g ...

  6. python二维码识别读取_python+opencv检测图片中二维码

    缘起 需要检测发票中二维码的位置,以确定图像该怎么旋转,同时也可以为提取二维码信息创造先觉条件!(万恶的需求!) 失败的尝试--opencv训练大法 不感兴趣的可跳过不看! 解释:原文作者是训练检测舌 ...

  7. JAVA 识别图片中二维码 opencv 识别精准

    JAVA 识别图片中二维码 opencv 识别精准 文章目录 JAVA 识别图片中二维码 opencv 识别精准 一.添加依赖 二.依赖配置 三.测试类 四.结果 提示:以下是本篇文章正文内容,下面案 ...

  8. Vue实现长按图片识别图中二维码

    Vue实现长按图片识别图中二维码 思路:要想实现可以识别图片中的二维码,那必定是要将这张图进行上传操作,上传则需要file对象格式.不管是在H5还是APP中,展示的图片都是通过url的方式展示在img ...

  9. 小程序: 长按识别图中二维码

    在小程序项目中,有时候我们需要按住二维码,弹出: 识别图中二维码的功能 1. API 小程序文档 - API - 媒体 - 图片 - perviewImage( ) :  在新页面中全屏预览图片.预览 ...

最新文章

  1. 电脑html按键侧滑广告,HTML5侧滑聊天面板
  2. 四十、Linux和ViM的使用
  3. C++main函数的参数介绍以及如何在main函数前执行一段代码
  4. oracle odbc 设置_Oracle删除不干净怎么办?
  5. JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
  6. python错误bug调试问题汇总
  7. TQ210——S5PV210启动过程
  8. GitHub 标星8.6K:将任何设备转换为电脑的辅助屏幕
  9. php mysql增删查改 主码不能修改_PHP 数据库练习
  10. Javascript学习笔记8——用JSON做原型
  11. 第1章 程序设计和C语言
  12. n1_如何高分通过日语N1考试?
  13. java app支付_java微信支付—APP
  14. appium+weditor+模拟器使用细节
  15. 靶机Tempus Fugit wirteup
  16. 聚宽API获取沪深300股票
  17. 出售永磁同步电机(pmsm)模型预测控制(MPC)matla b/simulink仿真模型,转速控制,电流控制,转矩控制,有PI矢量控制,直接预测控制(有限集模型预测控制)(这个其中包括做了单矢量和双
  18. 使用webpack打包nodejs 后台端环境|NodeJs 打包后台代码
  19. RT-Thread功耗调优项目实战 - 如何做好功耗
  20. 大学生用计算机,大学生计算机科学基础

热门文章

  1. [精品]CSAPP Bomb Lab 解题报告(一)
  2. linux启动weblogic指令,linux下如何启动和关闭weblogic .
  3. win7计算机管理找不到文件夹,Win7系统打开组策略提示找不到文件gpedit.msc怎么办...
  4. 第二章 Java基本语法(三)
  5. C++输出一句话里面第一个单词并大写
  6. 网站pc端分享QQ好友,空间,微博
  7. POJ1201 区间
  8. 谈谈yii2-gii如何自定义模板
  9. 不重复int数组里找不存在的值
  10. [导入]C#好书盘点【月儿原创】