1. 如果在設(shè)置中設(shè)置微信位置權(quán)限為不允許
image.png
image.png
在uni.getLocation api中會(huì)固定返回false但是此時(shí)提示的是小程序位置權(quán)限贩挣,問題在于小程序位置權(quán)限是開啟的伪冰,因此此處是需要區(qū)分是微信無位置權(quán)限還是小程序無位置權(quán)限梦裂,如果是微信無權(quán)限菠剩,應(yīng)該要提示用戶戳表,并引導(dǎo)用戶進(jìn)行位置權(quán)限的開啟(不然存在誤區(qū)蛛倦,小程序用戶檢查權(quán)限發(fā)現(xiàn)已經(jīng)給予位置權(quán)限歌懒,但是小程序仍然提示需要獲取權(quán)限,屬于特殊情況溯壶,一般很少有人微信app無地址權(quán)限)
2.京東的處理
image.png
3.uni處理
// successCallBack 即為確認(rèn)微信獲取位置權(quán)限后進(jìn)行的后續(xù)處理代碼
getSystemLocation (successCallBack) {
const systemInf = uni.getSystemInfoSync()
if (systemInf.uniPlatform === "mp-weixin") {
const appAuthorizeSetting = uni.getAppAuthorizeSetting()
// 開發(fā)者工具不校驗(yàn) 開發(fā)者工具無法獲取設(shè)置的locationAuthorized
if (appAuthorizeSetting.locationAuthorized !== 'authorized' && systemInf.platform !== 'devtools') {
uni.showModal({
title: '無法獲取你的位置信息',
content: '請(qǐng)?jiān)凇疚恢谩恐性试S微信在【使用APP期間】訪問位置信息及皂,并開啟【精準(zhǔn)位置】開關(guān)甫男。',
confirmText: '去授權(quán)',
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