收藏
回答

调用startLocationUpdateBackground,微信切换到后台,返回的定位位置相同?

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打印的值都是相同的。

最后一次编辑于  2021-02-20
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容
问题标签