小程序用户取消授权地理位置后
wx.chooseLocation
需要授权,如果第一次就不允许,则一直调用wx.chooseLocation的fail方法。
wx.getSetting
获取用户的当前设置,返回值中只会出现小程序已经向用户请求过的权限。
思路:
在wx.chooseLocation的fail方法里调用wx.getSetting。
代码:
const that = this
wx.chooseLocation({
success: function(res) {
},
fail:function(res){
// console.log(res)
wx.getSetting({
success:function(res){
// console.log(res)
if (!res.authSetting['scope.userLocation']){
wx.showModal({
title: '是否授权当前位置',
content: '请确认授权,否则此功能无法使用',
success:function(msg){
if(msg.confirm){
wx.openSetting({
success:function(e){
// console.log(e)
if (e.authSetting['scope.userLocation'] === true) {
wx.showToast({
title: '授权成功',
icon: 'success',
duration: 1000
})
wx.chooseLocation({
success: function(data) {
},
})
}
}
})
}else if(msg.cancel){
wx.showToast({
title: '调用授权窗口失败',
icon: 'none',
duration: 1000
})
}
}
})
}
}
})
},
})
}