wx.getLocation沒有彈出直接返回fail:invalid data
阿新 • • 發佈:2019-02-13
昨天小程式遇到了一個坑,坑的我浪費了2個小時加班也沒查出來,百度,google都沒有,社群提問今天反饋也沒出來結果,程式碼很簡單,幾乎是微信官方文件原始碼,沒對api進行從任何操作
場景:老闆的mate10在應該觸發wx.getLocation介面彈出請求允許獲取對話方塊的情況下沒有成功,直接fail,返回資訊fail:invalid data
程式碼:
onShow: function() {
console.log('進入show')
if (!wx.getStorageSync('city')){
console.log('城市不存在')
this .getAddress();
}
this.getAllList();
},
//獲取地址
getAddress() {
var that = this;
//1、獲取當前位置座標
wx.getLocation({
'type': 'wgs84',
success: function(res) {
console.log('wgs84 ')
//2、根據座標獲取當前位置名稱,顯示在頂部:騰訊地圖逆地址解析
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function (addressRes) {
console.log('獲取位置成功')
var address = addressRes.result.ad_info.city;
var cityCode = addressRes.result.ad_info.city_code;
that.setData({
city: address,
cityCode: cityCode,
})
wx.setStorage({
key: 'city' ,
data: address,
success: function(res) {
console.log('設定位置成功')
}
})
wx.setStorage({
key: 'cityCode',
data: cityCode,
success: function(res) {
console.log(res)
}
})
console.log(that.addressNow);
}
})
},
cancel: function (res) {
console.log('wgs84cacel',res);
},
fail: function (res) {
//返回fail:invalid data
console.log('wgs84fail',res);
}
})
},
success裡面是反解析 不用看了,沒有執行,直接運行了fail 返回了fail:invalid data。
查不到這個報錯提示,雖然翻譯過來時‘錯誤的資料’,但是該api是官方提供,且只傳了一個type:‘wgs84’,
最後想到一個辦法
fail: function (res) {
console.log('wgs84fail', res);
//被拒絕再次拉去請求
wx.authorize({ scope: "scope.userLocation" })
}
關鍵的轉折來了……,我將程式碼部署之後測試解決了,但是我發現我部署程式碼的時候把wx.authorize({ scope: “scope.userLocation” })註釋掉了……,也就是這個方法我一點也沒改動……但是解決了……
未解之謎6666