【微信小程序】9、用户拒绝授权地理位置后再次请求授权
1、获取用户当前的地理位置
在本专栏的上一篇文章中讲了如何 获取用户当前的地理位置
首次请求 wx.getLocation API 后,会拉起用户授权界面
但这时用户可能会拒绝授权,当你再次请求 wx.getLocation API 后,没有任何效果。
2、打开设置
用户拒绝授权地理位置后,而我们的业务需求又必须拿到用户的经纬度计算附近的门店信息,那我们就需要引导用户打开【小程序设置】,通过修改设置来获取用户的地理位置信息。具体做法如下:
- onLoad 方法
/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getLocation();}
- 获取地理位置信息
getLocation() {wx.getLocation({type: "gcj02",// 获取成功success: (res) => {this.setData({lng: res.longitude,lat: res.latitude,});// 获取附近门店信息this.getList();},// 获取失败fail: (err) => {wx.showModal({title: "提示",content: "该功能需要获取您的位置信息",showCancel: true,confirmText: "去设置",complete: (res) => {if (res.confirm) {wx.openSetting({complete: (res) => {if (res.authSetting["scope.userLocation"]) {this.onLoad(this.data.options);} else {wx.navigateBack();}},});}},cancel: () => {wx.navigateBack();}});},});
}
效果如下:
- 弹窗提示用户需要设置获取地理位置信息
- 进入设置界面
- 修改位置信息为:使用小程序时允许
修改后,用户返回到小程序页面时,就能拿到用户的地理位置信息,就可以正常的进行业务请求了。
如您在阅读中发现不足,欢迎留言!!!