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();}});},});
}
效果如下:
- 彈窗提示用戶需要設置獲取地理位置信息
- 進入設置界面
- 修改位置信息為:使用小程序時允許
修改后,用戶返回到小程序頁面時,就能拿到用戶的地理位置信息,就可以正常的進行業務請求了。
如您在閱讀中發現不足,歡迎留言!!!