前端页面中iOS版微信长按识别二维码的bug与解决方案

前端生成pdf之html2canvas+jsPDF,以及解决图片不显示bug 开发背景: 需要给页面中相应的内容生成pdf,查找文档后发现要用到两个插件。html2canvas 以及 jsPDFjsPDF参数下面是dom转化为pdf 的基本代码需要特别注意一下 html2canvasonclone方法。它是当DOM被克隆后进行渲染时的回调函数,可用于修改将要渲染的内容,而不会影响原始DOM。当你需要在生成快照前操作 DOM(例如隐藏打印按钮)时,会非常有用。 阅读详情

发现问题

页面做出来后测试,发现在安卓版微信能正常识别,但iOS 版微信(iPhone 或 iPad)皆无法正常识别。出来问题一开头固然是怀疑自己的代码有问题,上网搜索相关资料,尝试以下方案均无法解决:

1、定位方式由absolute 改为传统的margin(据说绝对定位会导致这个问题);

2、修改viewport 上的maximum-scale大于1(网络上看到的解决方案);

3、网络上有说用position: fixed; 定位会导致这个问题,但这个页面css 文件完全无fixed 这个单词。

寻找原因

后来找有经验的同事帮忙看下,发现可识别区域恰巧比正常地方稍微往上一点,而“比正常地方稍微往上一点”是多少呢?经过多次人工检测,发现上文“比正常地方稍微往上一点”的高度正是微信标题栏+系统状态栏的高度(64px)。

做了一个问题重现的页面,地址如下(用iOS 微信6.2 扫描方可重现):


iOS 版微信6.2 中二维码实际可识别区域为蓝色框部分(请用第五个小指在边缘区细心长按)。本人测试设备为iPad mini2+ iOS8.1 +微信6.2.2.17,其他微信版本没有测试;


基本上可以确定是iOS 版微信的本身问题,原因应该是微信客户端在识别二维码的时候忽略了微信标题栏+系统状态栏的高度,而这种bug 的促发貌似也是需要CSS 进行特殊定位的情况下才产生的(特别是absolute 绝对定位)。因为在微信实习的缘故,跟同事了解了下情况,这个bug 早在6.1 版本就出现了,他们有反馈过但到了6.2 都没有修复。所以当前情况应该是先自行hack 下。

6月25日更新:经过与微信 iOS 开发人员的反馈沟通,确定是微信的 bug,据他们的说法目前已经修复,但能否在下一个版本中加入么,就不得而知了。

解决方案

个人在做这个页面时候采取的解决方案是通过将img 标签增大padding 的方式来增大可点击区域(为此padding-bottom 特长)来解决的。

6月25日更新:还有一种解决方法(如下图),即为二维码图片本身增加透明底部背景(前端上访客看不到),增加可接触面积。





H5页面跨环境直连微信小程序:微信内+外部浏览器一键唤起方案 一套开箱即用的H5跳转微信小程序技术实现,支持在微信内置浏览器和手机外部浏览器(如Safari、Chrome)中,通过普通URL直接打开指定小程序。底层基于微信官方wx-open-launch-weapp组件,配合云函数openapi处理OpenAPI调用、登录态校验与透传、回调地址解析等关键逻辑。前端H5页面位于public目录,已预置适配样式和基础交互;小程序端提供callback页面接收参数并完成跳转承接;login目录封装了用户身份同步机制;callback目录暴露标准HTTP接口用于服务端回传结果 阅读详情

相关推荐

TC3xx芯片中断配置避坑指南:从AUTOSAR Davinci配置到SRN地址计算的完整流程

本文详细解析了英飞凌TC3xx芯片的中断配置流程,从AUTOSAR Davinci工具链到硬件调试的全链路指南。重点介绍了中断路由(IR)模块、服务请求节点(SRN)和中断控制单元(ICU)的配置技巧,帮助开发者避开常见陷阱,优化中断性能。

weixin_30628801的博客 414

IOS手机长按图片无法弹出识别二维码

ios长按图片弹出菜单。

x_duoduoluo的博客 5030

Linux系统搭建OpenClaw(原Clawdbot)全流程指南 最新版

工具定位:开源个人 AI 助手,支持文件读取、命令执行、多渠道交互(Telegram / 本地终端等);系统要求:主流 Linux 发行版(Ubuntu/Debian/CentOS 等),Node.js ≥22(核心依赖);安全提示:OpenClaw 为测试版,具备高权限操作能力,建议使用非主力机,配置权限白名单,避免接触敏感数据。

AI时代老码农的第二春 6561

uniapp-前端 二维码、扫码、长按、识别等问题

网上很多其他的说只能识别小程序二维码啥的连接,可能是用的旧的api,新版是可以的,这里做了验证处理。show-menu-by-longpress="true"可实现识别二维码(微信个人码、微信群码、企业微信个人码、 企业微信群码与企业微信互通群码)这两个api做完,可以直接达到的效果是识别图片里的二维码(个人微信二维码、群微信二维码、企业二维码等、小程序二维码)识别出来,可以是本地图片,可以是url。1:后端返回二维码的图片url,则直接展示,做长按手势识别,再调用方法即可。属性,就可以识别出长按操作。

qq_27909209的博客 1万+

从原理到调试:手把手教你用Matlab解码互补格雷码与相移码(附数据与常见错误排查)

本文详细介绍了如何使用Matlab解码互补格雷码与相移码,涵盖从原理到调试的全过程。通过实际案例和代码示例,帮助读者掌握结构光三维重建中的相位解包裹技术,并提供了常见错误排查与优化建议,提升解码效率与准确性。

weixin_29090917的博客 220

STM32+OOK通讯(OOK发送+OOK接收)+cubemx配置

关于OOK通信,我的理解就是将要发送的信息转换成高低电平(即0和1),然后接收方通过对01进行解码获得信息。于是我用了非常朴素的字符串转二进制+AM调制来完成通信链。话不多说我们直接开始!!!

qq_73856732的博客 2341

【微信小程序电脑可以调试但是不能手机端真机调试】

电脑端可以进行微信小程序的调试,但是手机端不能真机调试解决办法。

qq_41564804的博客 2244

使用AutoDL云服务器训练YOLO计算机视觉网络模型(AutoDL+Xftp+VS Code),附详细操作步骤

AutoDL AI算力云是一个提供人工智能算力服务的云平台。丰富的GPU资源:提供多种GPU型号,包括NVIDIA的A100A800L40V100RTX 4090RTX 3090等,能满足我们在不同场景下的需求,无论是进行大规模的AI训练还是复杂的科学计算等任务,都可以找到合适的GPU资源。灵活的付费方式:支持按量付费包日包周包月等多种付费模式。对于短期的实验或不确定时长的项目,可以选择按量付费;如果有长期稳定的算力需求,预付费或包周包月则可能更划算,可以根据自己的需求和预算进行选择。集成主流框架:集成了。

Limiiiing的博客 959

【菜比前端之不起眼小bug差点要我小命】Uniapp小程序发布小程序模拟器正常,但是真机无法打开问题

Uniapp小程序发布小程序在模拟器上运行正常,但是扫码打开体验版却有明显bug导致页面无法正常进行,如果早先发布的版本没问题,打开体验版前把旧的体验版删除,扫码新体验版就可复现bug。这种bug最不容易发现,但是往往会导致新用户无法打开小程序,导致小程序疯狂被差评!!!差评?这对前端程序员是极大的侮辱啊!!!最近刚优化完两小程序,就在这里总结下,能卡住小程序进不去首页或导致页面不能正常加载的bug,总结以下了几点…

qq_43869364的博客 942

FM收音机调试-RDA5807M

收音机调试 IC型号:RDA5807M

mangofu的博客 6170

【智能模型系列】基于Unity和MediaPipe【手部追踪+手势识别】系统开发指南

在本文中,我将详细介绍一个基于MediaPipe的Unity手势识别系统,该系统能够识别多种常见手势(如拳头、点赞、胜利手势等),并提供完整的事件系统来处理手势状态变化。这个系统非常适合用于VR/AR交互、手势控制游戏或任何需要自然用户界面的应用场景。

纯技术流日常开发商业开发记录总结等 587

小程序canvas分享图二进制二维码图片在模拟器显示正常真机显示不出来问题

直接上代码 ctx.drawImage(this.data.imgurl, 20 * 2, 290 * 2, 85 * 2, 85 * 2);

qq_30424359的博客 1498

GPS天线结构、原理、测试

【有源陶瓷天线构成】GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、[接头](h

数字世界 万物互联 2万+

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

这篇文章是上一篇文章的延伸与总结,做的一个微信游戏宣传页上要调用长按识别二维码的功能,做的过程中遇到了两个坑,后来在组里分享会上分享了入坑经历,然后再度发现一个坑。本文就是在分享会上发言总结而成。坑一:iOS 版微信长按识别二维码无法正常识别的bug(8.21 更新:最新版6.2.4 已经修复该bug)以下实测在iOS 版(iPhone)微信6.2.2 中有此bug,安卓版微...

weixin_33674976的博客 462

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

前端页面中iOS版微信长按识别二维码的bug

问题描述: H5首页banner图,在安卓微信内长按可识别二维码,但在ios部分机型上,长按图片识别不了二维码。 测试机型: iphone6s plus 系统12.1 微信版本6.7.4 iphone7 系统12.0.1 微信版本6.7.4 问题排查: (1)将图片单独在微信中打开,长按可识别二维码,排除是图片模糊问题; (2)上网查资料,以下解决方案均无效: 定位...

weixin_43821573的博客 4289

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

网页中二维码识别规则

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

weixin_39037804的博客 1535

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[踩坑] ios版的webview无法长按识别二维码

现象 最近开始用vue了,做了一个微信内嵌的h5页面,某个页面存在一个二维码,在安卓手机上可以长按识别二维码,但是ios不行。 如下图所示:安卓没有任何问题: ios长按就不行了: (出于隐私,马赛克了中间的二维码,见谅见谅) 环境 框架: vue 操作系统: ios 解决办法 后来到处找解决方案,google,,排查了N多原因,什么...

weixin_33736649的博客 1010

【bug】关于微信ios展示页面的url和实际url不一致的问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33875839的博客 2030

前端开发中正在踩得坑

vant 使用: vant-radio 中的name是字符串,回显的时候要让它选中,必须从后端获取到的接口数据用toString()也转换成字符串 写样式 style 中有 scoped: 如果是要强制修改全局中的样式属性,不能在scoped 中写;直接在style中修改。 ...

weixin_39854011的博客 985

基于二维码与状态机的微信扫码登录全流程实战指南

在现代Web应用中,身份认证是保障系统安全与用户体验的核心环节。传统的账号密码方式存在泄露风险与记忆负担,而OAuth 2.0等授权框架提供了更安全的解决方案。其原理是通过令牌(Token)代替密码进行授权,将关键的身份确认动作转移到用户信任的设备上执行,从而提升安全性并简化流程。这种模式的技术价值在于实现了跨平台、跨设备的无缝登录体验,尤其适用于同时拥有PC Web端与移动端(如微信小程序)的应用场景。本文聚焦于一种广泛应用的工程实践——扫码登录,它本质上是OAuth 2.0的简化流程,通过二维码作为临时

weixin_33796205的博客 373

ios H5踩坑之旅汇总

1. position: absolute; 问题:position: absolute 的元素不能完全脱离父节点,不能完全的意思是能够在父节点内绝对定位,但不能超出父节点绝对定位,即便父节点不是relative。 解决: 如果需要做全屏的图片,则需在根节点body下创建一个新元素。例如: <body> <div style="position: fixed;top: 0;b...

致家驹 - 海阔天空的博客 666
上一篇: 用Chrome在电脑上模拟微信内置浏览器
下一篇: 微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案
iplaycoder
博客等级 码龄11年 7粉丝 0原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值