微信小程序位置授权处理方法
这两天在做小程序调取地图的时候遇到一个问题,如果用户第一次拒绝了位置权限请求。那么就不会再次唤起授权弹出。需要我们引导用户去开启。
具体做法如下。在aap.json中加入授权配置
"permission":{
"scope.userLocation":{
"desc":"你的位置信息将用于小程序位置接口的效果展示"
}
}
在page页面中使用,需要有几个注意的地方,初次使用的时候,去申请权限。这里我是放在onShow方法里面。
onShow:function(){
//初始获取定位权限
wx.authorize({
scope:'scope.userLocation',
success:(res)=>{
},
})
},
然后在调用地图地位。或者获取用户权限的函数去判断是否有定位权限,如果没有那么引导用户开启权限。如下:我有一个Input去触发选择地图事件。
事件处理
openMap:function(e){
varthat=this
wx.getSetting({
success(res){
//这里判断是否有地位权限
if(!res.authSetting['scope.userLocation']){
wx.showModal({
title:'提示',
content:'请求获取位置权限',
success:function(res){
if(res.confirm==false){
returnfalse;
}
wx.openSetting({
success(res){
//如果再次拒绝则返回页面并提示
if(!res.authSetting['scope.userLocation']){
wx.showToast({
title:'此功能需获取位置信息,请重新设置',
duration:3000,
icon:'none'
})
}else{
//允许授权,调用地图
that.chooseMap()
}
}
})
}
})
}else{
//如果有定位权限,调用地图
that.chooseMap()
}
}
})
},
chooseMap(){
varthat=this
wx.chooseLocation({
success:function(res){
that.setData({
address:res.address,
latitude:res.latitude,
longitude:res.longitude
})
},
fail:function(res){
console.log(res)
}
})
},
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。