小程序处理微信设置关闭位置权限进行提示
1. 如果在设置中设置微信位置权限为不允许
在uni.getLocation api中会固定返回false但是此时提示的是小程序位置权限,问题在于小程序位置权限是开启的,因此此处是需要区分是微信无位置权限还是小程序无位置权限,如果是微信无权限,应该要提示用户,并引导用户进行位置权限的开启(不然存在误区,小程序用户检查权限发现已经给予位置权限,但是小程序仍然提示需要获取权限,属于特殊情况,一般很少有人微信app无地址权限)
2.京东的处理
3.uni处理
// successCallBack 即为确认微信获取位置权限后进行的后续处理代码
getSystemLocation (successCallBack) {
const systemInf = uni.getSystemInfoSync()
if (systemInf.uniPlatform === "mp-weixin") {
const appAuthorizeSetting = uni.getAppAuthorizeSetting()
// 开发者工具不校验 开发者工具无法获取设置的locationAuthorized
if (appAuthorizeSetting.locationAuthorized !== 'authorized' && systemInf.platform !== 'devtools') {
uni.showModal({
title: '无法获取你的位置信息',
content: '请在【位置】中允许微信在【使用APP期间】访问位置信息,并开启【精准位置】开关。',
confirmText: '去授权',
success: (res) => {
if (res.confirm) {
this.returnSetting = true
uni.openAppAuthorizeSetting({
success (res) {
const appAuthorizeSetting = uni.getAppAuthorizeSetting()
if (appAuthorizeSetting.locationAuthorized === 'authorized') {
successCallBack()
}
}
})
}
}
})
} else {
successCallBack()
}
} else {
successCallBack()
}
}