在开发中,出现了一个关于微信配置的问题。
使用的开发工具以及开发框架为 uniapp , JSSDK为 jweixin
使用uniapp进行公众号开发,需要在进入某个页面时候进行微信配置来达到更改分享信息的效果。
问题描述:
请求后台获取了微信配置参数并配置了微信参数后
在ios手机上显示验签失败,功能无法使用。
在微信开发者工具、安卓端验签成功,功能正常。
经测试,ios端刷新页面后,验签即正常,所以,配置参数没有问题。
解决方案:
1.(不推荐)
通过jweixin.error监听失败事件,如果有失败,则刷新页面。
虽然一般刷新一次就可以配置成功,但仍需要需要控制刷新次数 ,避免不断刷新 ,我是通过加url参数的形式 ,如果location.search中不存在retry,则进行刷新。
错误监听示例代码:
if( err ){ let search = location.search; if( search ){ if( !search.includes('&retry') && !search.includes('?retry') ){ location.href += '&retry=1' } }else{ location.href +='?retry=1' } }
2.(推荐)
通过测试发现,发生该错误的原因为,通过uniapp的api uni.navigateTo 跳转到页面时,ios获取到的location.href是错误的地址(虽然打印出来没错),
所以导致验签失败。而方法一执行刷新后之所以可以,因为是使用location来进行跳转。
解决方案: 将跳转进入页面的跳转代码 由 uni.navigateTo 改成 location.href = 页面名。