在安卓下的异常场景是,A页面调用了微信sdk的api(例如wx.getNetworkType),在api callback之前,用户点击后退按钮从A页面跳到了B页面,这时候这个callback函数被native注入到了B页面,由于这时候B页面刚刚加载进来,WeixinJSBridge还没有初始化完毕,这个callback就会失败,并报错。
我们捕获的demo:
A页面调用wx.getNetworkType,B页面会被注入javascript:WeixinJSBridge._handleMessageFromWeixin({"__json_message":{"__msg_type":"callback","__callback_id":"1020","__params":{"err_msg":"network_type:wifi"}},"__sha_key":"xxxx"}),然后就爆出"WeixinJSBridge is not defined"的错误。
过一段时间之后,weixin js sdk加载完毕,会有"WeixinJSBridge exec time"之类的提示,此时我们正常的wx.ready的代码可以执行。
网友评论