小程序处理微信设置关闭位置权限进行提示

1. 如果在设置中设置微信位置权限为不允许

image.png
image.png
在uni.getLocation api中会固定返回false但是此时提示的是小程序位置权限,问题在于小程序位置权限是开启的,因此此处是需要区分是微信无位置权限还是小程序无位置权限,如果是微信无权限,应该要提示用户,并引导用户进行位置权限的开启(不然存在误区,小程序用户检查权限发现已经给予位置权限,但是小程序仍然提示需要获取权限,属于特殊情况,一般很少有人微信app无地址权限)

2.京东的处理

image.png

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()
}
}

处理效果.png

posted @   story.Write(z)  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示