收藏
回答

Android手机上,只要微信被切换到后台,后台定位总是返回相同的经纬度

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.startLocationUpdateBackground 微信安卓客户端 8.0.1 2.15.0

Android手机,调用wx.startLocationUpdateBackground后台定位,在后台监测位置更新,当微信在前台时,即使设备锁屏,都能够正常更新;但如果将微信切换到到后台(显示Android首页面或者切换到其他应用程序),回调函数接收到的位置信息,就不会更新了。

同样的代码,在iPhone手机上测试,则不会有问题,无论微信是否被切换到后台,都能够接收到位置更新。

使用代码片段的重现步骤:

(1)在Android手机上打开真机调试,打开“定位控件”开关,开启后台实时监测;

(2)在授权对话框中选择“在使用小程序期间和离开小程序后”,并点击允许;

(3)在Android手机上将微信应用切换到后台,打开任意一个其他的App(如腾讯视频等)到前台;

(4)在户外走一圈,在真机调试窗口查看实时打印信息,发现position changed几乎不会被打印出来,_locationChangeFn res打印的值都是相同的。

注:在回调函数_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
        }
      })
    }



回答关注问题邀请回答
收藏
登录 后发表内容
问题标签