项目场景:
神兔侠公众号引用js sdk ios兼容问题 报 permission value is offline verifying
问题描述:
当需要获取权限时,安卓可以随时获取,但ios不可以。会出现无论是 选择拍照还是获取地理位置都报 **permission value is offline verifying** 问题。原因分析:
授权的概念: a页面需要授权,授权是要b页面,授权后是要更改a页面的某些参数的,但是苹果不会更改。安卓会自动更改。解决方案:
import {wxUtils } from "@/utils/wxUtils";
在created里面添加
if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
window.entryUrl = location.href.split('#')[0]
}
let signLink = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.entryUrl;
wxUtils(GenerateMixed(16),GetDateNums(10), signLink)
utils/wxUtils里面长这样
const wxUtils = (noncestr,timestamp,url) => {
return new Promise((resolve, reject) => {
let data = {
noncestr: noncestr,
timestamp: timestamp,
url: url
}
infoData.postData(
baseUrl + '/wx/wechat/getSign',qs.stringify(data), (res)=>{
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appid,
timestamp: timestamp,
nonceStr: noncestr,
signature: res.data.data,
jsApiList: [
'openLocation',
'getLocation',
'hideMenuItems',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'scanQRCode'
]
});
wxReady(resolve)
console.log('加载成功了吗')
},(err)=>{
reject();
this.infoData.$toasted(err.data.msg)
}
)
})
}
// 微信jssdk加载完成
const wxReady = resolve => { //不让分享
wx.ready(() => {
console.log('微信jssdk加载完成')
wx.hideMenuItems({
menuList: [
'menuItem:share:timeline', // 分享给朋友圈
'menuItem:share:qq', // 分享到QQ
'menuItem:share:weiboApp', // 分享到Weibo
'menuItem:favorite', // 收藏
'menuItem:share:QZone', // 分享到 QQ 空间
'menuItem:copyUrl', // 复制链接
'menuItem:openWithQQBrowser', // 在QQ浏览器中打开
'menuItem:openWithSafari', // 在Safari中打开
'menuItem:share:email', // 邮件
'menuItem:readMode', // 阅读模式
'menuItem:originPage' // 原网页
] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
});
resolve();
});
};