(同一个 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。
1
airyland 2020-01-07 10:59:41 +08:00
微信的 SDK 没有 “开发者友好” 这一说,一直是让开发者去 hack,去用花费时间的方法绕过问题。之前支付的目录问题导致了单应用无法实现真正单应用,要跳转到新页面。
|
2
learnshare OP |
3
quan01994 2020-01-07 11:49:49 +08:00
你需要 store 里保存进入的地址就行了,
|
4
learnshare OP @quan01994 不是没有 hack 的方法,只是需要发工单提醒一下
|