收藏
回答

WKWebview下使用history模式的单页应用无法正确调用 JSSDK

最近在 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,理论上不存在此问题。

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



回答关注问题邀请回答
收藏

5 个回答

  • 。
    2020-12-03

    7.0.18 还是有。。。我是真不想玩微信了,这和叫用户换手机有什么区别。。。。。换hash。。。我其他业务也得重构吗..............................................

    2020-12-03
    有用
    回复
  • オレバーです
    オレバーです
    2018-01-24

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

    2018-01-24
    有用
    回复
  • Evan.三行云智.移动互联|物联网
    Evan.三行云智.移动互联|物联网
    2018-01-10

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

    2018-01-10
    有用
    回复
  • 冯嘉祺
    冯嘉祺
    2017-09-27

    +1

    2017-09-27
    有用
    回复
  • 🐑
    🐑
    2017-08-03

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


    2017-08-03
    有用
    回复
登录 后发表内容