安卓的wx.getLocation总是失败呢
对于安卓系列的 手机 wx.Location( { } ) 一直不执行。 调试时 已经确保手机 获取位置 开关 是打开状态。
7 回复
(已解决)如果getLocation函数在安卓上调用的时候一直走到fail可以尝试调用两次getLocation函数
wx.getLocation
({
type: 'gcj02',
success(res) {
console.log(res);
that.data.latitude = res.latitude
that.data.longitude = res.longitude
}
})
wx.getLocation({
type: 'wgs84 ',
success(res) {
that.data.latitude = res.latitude
that.data.longitude = res.longitude
console.log("更新latitude:" + that.data.latitude);
console.log("更新longitude:" + that.data.longitude);
},
fail: function () {
wx.showToast
({
title: "获取位置信息失败,请稍后再试",
icon: 'none',
duration: 2000
})
}
})
安卓手机只有在小程序第一次加载的时候才会主动弹窗地理位置授权,如果用户点击拒绝之后,以后都不会再主动弹窗提醒用户地理位置授权了。对于拒绝授权再次进入的情况,可以使用官方提供的button组件模拟授权弹窗,open-type="openSetting"可以打开授权。
同上只有安卓机会有这个问题,是在开发版本出现的问题, wx.Location( ),只在第一次加载界面的时候是生效的,但是为了调取接口数据,需要打开调试,点击打开调试时,自动退出小程序,在次进入的时候有的时候就不会调用wx.Location(),导致我们需要获取当前位置的数据取不到。