获取用户地址,只会在第一次进来会弹出授权的弹框,但点拒绝了下次再进来就不弹框了,你再想点授权都没有机会?这是什么鬼啊?
把你的加载数据代码放到onShow事件
Page({
onShow: function () {
checkHasLocationPermissionByMP().then(_=>{
console.log(‘有权限’)
this.loadData() // 网络请求数据
}).catch(_=>{
console.log(‘无权限’)
wx.showModal({
title: ‘提示’,
content: ‘您拒绝授权使用当前地理位置权限,请打开获取位置信息授权!否则无法使用小程序部分功能’,
confirmText: ‘去授权’,
confirmColor: ‘#07c160’,
success: res => {
if (res.confirm) {
wx.openSetting({})
}
}
})
})
},
loadData(){
//TODU
console.log(‘网络请求数据’)
}
})
/** 检测是否有定位权限BY 小程序 **/
function checkHasLocationPermissionByMP() {
return new Promise(function (resolve, reject) {
wx.getSetting({
success(sd) {
if (!sd.authSetting[‘scope.userLocation’]) {
wx.authorize({
scope: ‘scope.userLocation’,
success(e) {
resolve()
},
fail(e) {
reject()
}
})
} else {
resolve()
}
}
})
})
}