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

探讨了H5页面在iOS微信环境下长按图片无法识别二维码的问题,通过实验排除图片质量原因,尝试多种解决方案无效,最终发现window.history.replaceState及window.location.href影响识别,但业务需求限制无法移除。

问题描述:

H5首页banner图,在安卓微信内长按可识别二维码,但在ios部分机型上,长按图片识别不了二维码。

测试机型:

  • iphone6s plus 系统12.1 微信版本6.7.4

  • iphone7 系统12.0.1 微信版本6.7.4

问题排查:

  • (1)将图片单独在微信中打开,长按可识别二维码,排除是图片模糊问题;
  • (2)上网查资料,以下解决方案均无效
    • 1、定位方式由absolute 改为传统的margin(据说绝对定位会导致这个问题);
    • 2、修改viewport 上的maximum-scale大于1(网络上看到的解决方案);
    • 3、网络上有说用position: fixed; 定位会导致这个问题 ;
  • (3)网上此类问题资料很少,我们再从代码中查找问题,经反复实验之后,发现代码中用到了window.history.replaceState(null, null, newUrl);以及window.location.href=newUrl,将此类代码注释掉,发现二维码可识别。

问题解决:

哈哈,目前还没找到解决办法,replaceState和window.location.href因业务需要,不可删除。期待广大网友给出办法。

转载于:https://juejin.im/post/5c0634f5e51d451dd2579f47

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值