要点:获取地理位置时,如果获取地理位置失败,有两种情况:
1、用户未给小程序授权地理位置信息
2、系统设置中-隐私选项地理位置未开启或系统未给微信授权地理位置信息
在获取地理位置信息失败后,判断用户是否有为小程序授权地理位置,如果未授权,则是第一种情况,打开地理位置授权即可;
但是进入了fail函数,并且已有地理位置授权,说明是第二种情况,需要用户在系统设置中打开定位和授权。代码如下:
// 调用地理位置授权
getLocation() {
const that = this;
wx.getLocation({
type: 'gcj02', // 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标
isHighAccuracy: true,
success(res) {
that.data.query.lat = res.latitude;
that.data.query.lon = res.longitude;
that.getData();
},
fail(err) {
wx.getSetting({
success(res) {
if (!res.authSetting['scope.userLocation']) {
util.showToastTip('授权失败,请重新授权', 'none');
that.setData({
viewStatus: "noauth"
});
}else{
util.showToastTip('请在系统设置中打开定位服务并下拉刷新列表', 'none');
}
}
})
}
});
},