微信小程序 > 微信公开课 > 小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败
微信小程序,微信公开课,小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败

小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败

2019-04-03 15:16:50

如何看待微信公开课小程序热门讨论「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」
摘要:小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败
展开:首先贴微信jssdk的文档原文:所有需要使用JSSDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的webapp可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现webapp的页面会导致签名失败,此问题会在Android6.2中修复)。简单来说解决方案就是IOS的配置一次就行,android的话就要每跳到一个新页面(也就是通过History.pushState()改变了当前地址栏URL)就重新生成签名并进行配置。接下来说说我的实际情况:IOS下是完全没问题的,反正就是用落地页的URL来生成签名并且配置嘛。我的备用机——一加X(最新微信客户端版本6.5.23,安卓版本5.x)按上述技术解决方案是完完全全没有问题的。我的主力机——小米6(同样是最新微信客户端版本6.5.23,MIUI9,安卓版本7.0)按上述技术解决方案就出问题了:落地页面自然是没问题的;点解超链接跳转到第二个页面,我选择在dom渲染结束后这一时机来生成新的配置,并保证在执行wx.config()后再接wx.ready(function(){}),由于我开了jssdk的debug模式,因此会alert回馈给我看jssdk的执行结果:首先是配置的结果——{errMsg:config:ok},接着就是我在wx.ready(function(){})中用以测试jssdk功能是否正常而使用的checkJsApi(),结果是这样的:{errMsg:checkJsApi:permissiondenied}总结一下:我的方案总体来说应该是没有问题的,毕竟在IOS以及一加X上都是正常的,因此我怀疑这里面是不是有机型还是系统方面的兼容性差异。另外:我也试过在小米6上,干脆就像IOS那样只配置一次(按落地页URL),也还是不行。
标签:小程序
微信小程序,微信公开课,小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败

「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」热门讨论订阅

方法1:微信扫描微信公开课小程序码即可订阅热门讨论「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」

微信公开课小程序热门讨论「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热门讨论「小程序HistorypushState()实现的SPA导致微信jssdk配置签名失败」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。