[微信] iOS 上 js-sdk 签名失败的问题可否修一下

2020-01-07 10:35:11 +08:00
 learnshare

Google: ios 微信 jssdk 签名失败

(同一个 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。

1991 次点击
所在节点    全球工单系统
4 条回复
airyland
2020-01-07 10:59:41 +08:00
微信的 SDK 没有 “开发者友好” 这一说,一直是让开发者去 hack,去用花费时间的方法绕过问题。之前支付的目录问题导致了单应用无法实现真正单应用,要跳转到新页面。
learnshare
2020-01-07 11:48:05 +08:00
@airyland 虽然对开发者不友好,但做不做微信相关的开发并不由开发者自己决定

那么腾讯的开发者为何要为难自家兄弟?
quan01994
2020-01-07 11:49:49 +08:00
你需要 store 里保存进入的地址就行了,
learnshare
2020-01-07 11:52:22 +08:00
@quan01994 不是没有 hack 的方法,只是需要发工单提醒一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/635702

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX