WKWebview下使用history模式的单页应用无法正确调用 JSSDK
发布于 7 年前 作者 taoyu 11840 次浏览 来自 问答

最近在 iOS 10.2.1 微信 6.5.5 版的 WKWebview 中调试一个单页应用时,发现 url 切换后修改分享信息的调用(例如 wx.onMenuShareTimeline)就会失效,而在 UIWebView 中则是正常的。

该单页应用使用的是 React-Router 3.x 的 history 模式,即不使用 hash 的模式。

发现问题后,尝试在每次 url 切换并调用 wx.onMenuShareTimeline  前先调用 wx.config 重新认证(原本是不需要这个步骤的),发现都会报 invalid signature 的错误,猜测调用 wx.onMenuShareTimeline 也是因为这个原因。

随后在iOS WKWebview 网页开发适配指南中找到如下建议:

  1.  iOS微信6.5.1,WKWebview在此版本中已知有以下问题:页面使用HTML5的History API pushState; popstate;      replaceState等控制页面导航(典型的如单应用页面),同时使用JSSDK的wx.config为jsapi授权,此时大几率会出现jsapi因为无权限而调用失败的问题。 在6.5.1中页面若可能的情况下,可使用Anchor hash技术替换History技术来解决此问题。

  2.  iOS微信6.5.2及其之后版本,将不会存在以上问题,但不能100%确认有使用到 history或hash技术更改页面导航地址的页面完全没有此类问题,依然需要开发者注意关注此类问题。

但是我现在手头的微信版本已经为 6.5.5,理论上不存在此问题。

不知道下个版本是否会修复此问题?


4 回复

的确 6.6.1的确出现了 多刷新几次页面会好

6.6.1版本都还有这个问题。呵呵

求问目前什么情况了,同样遇到

回到顶部