微信小程序在開(kāi)通了地理位置權(quán)限之后,還是會(huì)發(fā)生對(duì)用戶的地理位置獲取失敗的情況,這是什么原因引起的呢?又該如何解決?讓我們一起來(lái)了解一下。
微信小程序獲取用戶地理位置失敗的原因主要有兩點(diǎn):
1、用戶未給小程序授權(quán)地理位置信息
解決方法:每個(gè)用戶習(xí)慣都不一樣,有些用戶可能在打開(kāi)微信小程序獲取地理位置的彈窗彈出時(shí)沒(méi)有點(diǎn)允許或同意,建議彈窗出來(lái)的時(shí)候點(diǎn)擊允許。
2、系統(tǒng)設(shè)置中地理位置為開(kāi)啟或系統(tǒng)未給微信授權(quán)
解決方法:在獲取地理位置信息失敗后,判斷用戶是否有為小程序授權(quán)地理位置,如果未授權(quán),則是第一個(gè)原因,打開(kāi)地理位置授權(quán)即可;但是進(jìn)入了fail函數(shù),并且已有地理位置授權(quán),說(shuō)明是第二個(gè)原因,需要用戶在系統(tǒng)設(shè)置中打開(kāi)定位和授權(quán)。代碼如下:
// 調(diào)用地理位置授權(quán)
getLocation() {
const that = this;
wx.getLocation({
type: ‘gcj02’, // 默認(rèn)為 wgs84 返回 gps 坐標(biāo),gcj02 返回可用于 wx.openLocation 的坐標(biāo)
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(‘授權(quán)失敗,請(qǐng)重新授權(quán)’, ‘none’);
that.setData({
viewStatus: “noauth”
});
}else{
util.showToastTip(‘請(qǐng)?jiān)谙到y(tǒng)設(shè)置中打開(kāi)定位服務(wù)并下拉刷新列表’, ‘none’);
}
}
})
}
});
},