Android 华为荣耀9手机,调用wx.startLocationUpdateBackground在后台监测位置更新,当微信在前台时,即使设备锁屏,都能够正常更新;但如果将微信切换到到后台(显示Android首页面或者切换到其他应用程序),回调函数接收到的位置信息,就不会更新了。
同样的代码,在iPhone手机上测试,则不会有问题,无论微信是否被切换到后台,都能够接收到位置更新。
以下是Android手机相关信息截图:
代码片段如下:
https://developers.weixin.qq.com/s/GpTEldmr7eoJ
在回调函数_locationChangeFn中有两个log,当GPS位置发生变化时,这两个log都会显示。
_locationChangeFn(res) {
console.log('_locationChangeFn res:', res.latitude, res.longitude)
if ((res.latitude != this.data.location.latitude) || (res.longitude != this.data.location.longitude)) {
console.log('position changed:', res.latitude, res.longitude)
this.setData({
location: {
latitude: res.latitude,
longitude: res.longitude
}
})
}
重现步骤:
(1)打开真机调试,打开“定位控件”开关,开启后台实时监测;
(2)在授权对话框中选择“在使用小程序期间和离开小程序后”,并点击允许;
(3)在Android手机上将微信应用切换到后台,打开任意一个其他的App到前台;
(4)在户外走一圈,在真机调试窗口查看实时打印信息,发现position changed几乎不会被打印出来,_locationChangeFn res打印的值都是相同的。
您好,问题解决了吗