(同一个 url 仅需调用一次,对于变化 url 的 SPA 的 web app 可在每次 url 变化时进行调用,目前 Android 微信客户端不支持 pushState 的 H5 新特性,所以使用 pushState 来实现 web app 的页面会导致签名失败,此问题会在 Android6.2 中修复)
具体原因:iOS 微信浏览器中使用 window.location.href 获得的 URL 与当前 URL 不同
测试环境:微信 iOS 7.0.8
浏览器 UA:Mozilla/5.0 (iPad; CPU OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.8(0x17000820) NetType/WIFI Language/zh_CN
Web 应用:Vue + vue-router,mode: 'history',jweixin-1.4.0.js
从 https://www.zhihu.com/question/59388458/log 可以发现,该问题已经存在两年半以上了。更早之前微信浏览器对 pushState 支持更差,导致分享和支付必须使用两种不同的 history mode。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.