最近在开发小程序,需要用到位置信息。
但总有那么一小部分人会点击拒接授权,然后小程序就用不了了。因为是根据所在的城市信息来加载数据,所以就需要引导用户自己打开地理位置授权。像下图
废话不多说直接上代码
wx.getSetting({ //先查看授权情况
success:function(res){
var statu = res.authSetting;
if(!statu['scope.userLocation']){ //判断是否授权,没有授权就提示下面的信息
wx.showModal({
title:'需要获取您的地理位置,请确认授权,否则小程序功能将无法使用',
cancelColor: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
success:function(tip){
if(tip.confirm){ //查看是否点击确定
wx.openSetting({ //打开设置
success:function(data){
if(data.authSetting["scope.userLocation"] == true){ //到这一步表示打开了位置授权
wx.showToast({
title: '授权成功',
icon: 'success',
duration: 1000
})
this.onLoad()
/*
可以在这里重新请求数据等操作
*/
}else{
wx.showToast({
title: '授权失败',
icon: 'none',
duration: 1000
})
}
},
fail:function(){
}
})
}else{
wx.showToast({
title: '授权失败',
icon: 'none',
duration: 1000
})
}
}
})
}
}
})
这只是一个简单的授权,如果还有其他麻烦的操作可以在授权成功之后添加,比如重新获取位置信息之类的,我是直接this.onLoad(),当然也有许多别的方法。
如有错误请提出,本人使用小程序时间也不长,欢迎评论,共同进步!