vue项目接入微信js-sdk config在安卓系统下正常,ios系统却报'invalid signature'
微信公众号的js-sdk,这个以前在静态html上配置过,在安卓和ios上都正常。最近的在一个vue项目上需要接入js-sdk使用wx.chooseImage(
拍照或从手机相册中选图接口
)
选择图片功能,通过自己的安卓机和微信开发工具都正常,可以正常使用,但是ios手机测试时,调用wx.chooseImage没反应。打开config的调试模式,安卓上显示的成功,ios上提示的是invalid signature,通过论坛了解到。
ios在跳转页面时,只要不刷新页面href是会发生变化的。
解决方法:ios在给后端传当前url获取微信config的时候,要去掉hash路由#后面的内容,所以取url的方法为location.href.split('#')[0]
根据不同的手机类型进行处理
let url = ''; var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 if (isAndroid) { url=location.href } if (isIOS) { url=location.href.split('#')[0] //hash后面的部分如果带上ios中config会不对 }