200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信公众号调取jssdk扫一扫功能 ios第一次进入页面调取失败(需刷新页面才能调取成功

微信公众号调取jssdk扫一扫功能 ios第一次进入页面调取失败(需刷新页面才能调取成功

时间:2021-08-23 16:28:11

相关推荐

微信公众号调取jssdk扫一扫功能 ios第一次进入页面调取失败(需刷新页面才能调取成功

注意:ios第一次进入页面调取失败的原因主要在于传入的path路径

const data = {

url:encodeURIComponent(location.href.split(’#’)[0]),

}

看了一些博客,说是url要用encodeURIComponent进行编码,后台解码就可以解决问题,但是对我用了还是不能解决,于是我又找了其它方法

用路由守卫解决了问题,说白了就是每次切换页面的时候都去重新config

但是因为安卓手机上没有问题,我就区分了安卓和ios的写法:

let u = navigator.userAgent, app = navigator.appVersion;

let isIOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

if (isIOS) {

// 全局路由守卫

router.beforeEach((to, from, next) => {

const data = {

url: encodeURIComponent((location.href.split(’#’)[0])),

appType: sessionStorage.getItem(‘appType’)

}

const url = ‘/wx/getJsSdkPermission?’ + qs.stringify(data); //获取签名

http.get({ url, data }, {

success: (data) => {

wx.config({

beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题

debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId: this,appId, // 必填,企业号的唯一标识,此处填写企业号corpid

timestamp: data.timestamp, // 必填,生成签名的时间戳

nonceStr: data.noncestr, // 必填,生成签名的随机串

signature: data.sign, // 必填,签名,见附录1

jsApiList: [

“checkJsApi”,

“scanQRCode”,

]// 必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

wx.ready(function (data) {

})

}

});

next() // 必须使用 next ,执行效果依赖 next 方法的调用参数

})

}

问题完美解决

微信公众号调取jssdk扫一扫功能 ios第一次进入页面调取失败(需刷新页面才能调取成功 Android正常)的解决方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。