今天开发小程序的时候,在onLoad中调用wx.getLocation(), 调用多次之后它直接给我返回报错信息,说什么高频率调用会导致耗电,如有需要可使用持续定位接口 wx.onLocationChange。
然后我就去瞄了一眼微信官方文档
wx.getLocation(Object object) | 微信开放文档
那我们就可以使用wx.onLocationChange来代替wx.getLocation()获取地理位置
原来的wx.getLocation方法
wx.getLocation({
type: 'gcj02',
success(res) {
// 调用sdk接口
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function (res) {
console.log(res) //获取成功
}
})
},
fail(error) {
console.log(error) //调用太频繁就会走error了
}
})
优化后的wx.onLocationChange
wx.startLocationUpdate({
type: 'gcj02',
success: () => {
wx.onLocationChange((res) => {
// 调用sdk接口
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function (res) {
console.log(res) //获取成功
}
})
wx.stopLocationUpdate()
})
}
})
wx.onLocationChange会监听实时地理位置变化事件,需结合 wx.startLocationUpdateBackground、wx.startLocationUpdate使用。