真的是无力吐槽微信的坑真的多把人能呕死,做了个公众号开发一大堆的坑
希望你看完每个字
分享一下ios微信长按无法识别二维码的问题
在网上找了一大堆的处理方式说增加img 的padding、设置缩放的、还有说图片大小的问题 、我扫码图片就是从服务号弄下来的。最后还是没用。
然后我就研究了一下到底为啥
测试流程
这个做了一天的测试才发现测试流程的效果
复制可以识别二维码的公众号地址
没有修改前
复制不可以识别的地址
复制一下你的链接就知道为啥了
问题原因
1、链接错误出现这个问题的原因
是因为微信内置浏览器对 history 的支持不够全面
所以对于开启了 History Mode 的 SPA 应用,只会保存第一条 url
只要每个页面都刷新一次,严格的说不能是简单的刷新,需要用 location.replace 刷新页面,就能解决该问题
2、链接错误和二维码识别有什么关系呢
其实这个我也不明白为啥、反正知道这样能解决问题增加识别二维码的次率、应该就是微信处理的时候会去检测链接吧
证明一点就是和图片、识别位置都没什么关系我都照做了、只要复制出来的链接是不是当前路由链接没用。
解决方案
解决方案肯定就是处理window.location链接问题
我用react写的 不过不管用什么写都一样的思路
if (pathname.includes('/user/followWeChat') && !window.location.href.match('#time')) {setTimeout(window.location = window.location + "#time", 500);}
上述操作的监听你的路由变化到扫码界面后进行设置当前location为当前location处理url变化
为了防止死循环新增一个#time参数下次再执行携带参数不会走这个里面
以上操作完成后已经增加了很大的识别空间
会存在一个问题就是还是会偶现加载完成无法识别的问题、但是刷新一下就好了
做一个界面刷新、万一用户无法识别点击刷新、目前测试百分之百可以识别
有问题疑问请留言
送上一波福利