收藏
回答

startLocationUpdateBackground的逻辑悖论

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.startLocationUpdateBackground 微信iOS客户端 未知 3.4.7

https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.startLocationUpdateBackground.html

切换到后台后,小程序不再工作,JS代码都不运行了,这个接口继续上报位置有什么用?谁能告诉我

回答关注问题邀请回答
收藏

1 个回答

  • 三岁老头子
    三岁老头子
    2024-12-09

    我也是用来上报货车的实时位置,根据我的实测,我发现微信切换到后台后,这个接口只能在后端将获取到的地理位置数据缓存起来,并不会回调我的接口,当从后台回到前台时,瞬间将缓存的地理位置包括打印的log日志一下子全部推出来了,这个接口应该还是无法摆脱设备的前后台切换生命周期,也无法避免后台进程可能被系统kill掉。这样也能解释你说的‘‘JS代码都不运行了’’。

    但是启用startLocationUpdateBackground后,离开当前定位页面去小程序其它页面,确实还是有定位上报。所以我觉得官方所说的‘‘离开小程序’’应该叫“离开小程序定位页面”更合适,当然,也可能我的集成方法是个例,但找了好久也没有找到能像官方所说的,微信切换到后台后也能定位的方法。

    2024-12-09
    有用
    回复 2
    • 三岁老头子
      三岁老头子
      05-17
      隔了半年再来看这个功能,2025-05-17,现在已经做到了官方文档说的后台定位,经iphone mini12和安卓手机实测,在开启后台定位后,可以关闭小程序(对,关闭、退出,只要不调用停止后台定位接口),会在微信界面侧边驻留有一个绿色的定位标记,说明在实时定位,且能在后台收到小程序上报的定位数据,无论是小程序被关闭,小程序被切换到后台、甚至小程序被关闭或手机切换到其它APP,只要微信在后台运行,定位数据是在正常上报到后端的,可能微信升级了后台定位的实现方式;当然那些什么手动杀进程,内存吃紧被杀,被管理程序杀的情况没有去测试,有没有新的使用限制没去了解。至少现在真正做到了后台定位,给微信团队点个赞。
      05-17
      回复
    • 三岁老头子
      三岁老头子
      05-17
      熄屏待机一个小时了,正常
      05-17
      回复
登录 后发表内容