1
收藏
评论

新能力解读:小程序后台持续定位功能

在 2019 年 7 月 30 日发布的小程序基础库 v2.8.0 版本中,新增了小程序后台持续定位功能,在这篇文章中,将为你介绍这个能力的用途和用法。

在 2019 年 7 月 30 日发布的小程序基础库 v2.8.0 版本中,新增了小程序后台持续定位功能,在这篇文章中,将为你介绍这个能力的用途和用法。

新增的后台持续定位能力能干嘛?

在基础库版本 v2.8.0 版本以前,小程序提供的 API 仅有 wx.openLocationwx.getLocationwx.chooseLocation,这些 API 都仅能用于某一时刻用户位置的获取和选择,这导致在进行产品设计上,是无法完成对于一些具有实时性要求的需求。所有的用户位置状态都是一个特定的时刻。

新增的后台持续定位能力可以让你在你的地图应用中实现实时的定位。在没有该能力之前,如果你需要实现类似的功能,需要每隔一秒获取一次地址,以获取当前用户的位置,并进行比较,但晒在新的后台持续定位能力中,你可以直接在 wx.onLocationChange 方法中获取到变动后的位置,相比于之前的轮询的方式,新的方式会更加的省电。

新增的后台持续定位能力应当如何使用?

在使用新的后台持续定位能力时,你需要根据实际的情况,选择使用 wx.startLocationUpdatewx.startLocationUpdateBackground 从而开启自动获取数据。

随后,使用 wx.onLocationChange 来获取变动后的位置,从而对该位置进化后续的业务逻辑的判断。

当你使用完成后,需要使用 wx.stopLocationUpdate 来禁用后台持续定位能力,节省设备电量。

后台持续定位能力使用注意事项?

在使用后台持续定位能力时需要注意两点:

  1. 调用前需要 用户授权 scope.userLocationBackground
  2. 该功能从基础库 2.8.0 开始支持,低版本需做兼容处理。
最后一次编辑于  08-04  (未经腾讯允许,不得转载)
复制链接赞 1收藏评论

11 个评论

  • 小易27
    小易27
    08-07

    建议onLocationChange能提供上报频率,和移动精度选择项

    问题已经提交到社区

    08-07
    赞同 22
    回复
  • 阳洋
    阳洋
    08-04
    这个不错
    08-04
    赞同
    回复
  • .樂.
    .樂.
    08-08

    这个能力,如果中途打电话,持续定位还会运行吗?

    08-08
    赞同
    回复 1
    • 白宦成
      白宦成
      08-08
      这个暂时还需要测试一下,理论上 GPS 与 GSM 并不冲突
      08-08
      赞同
      回复
  • K
    K
    08-08

    hi,我为什么没有这个api呢?小程序开发工具已经更新到最新的了,然后调试基础库也到2.8.0了,但是就是没有这个功能。

    08-08
    赞同
    回复 2
    • 白宦成
      白宦成
      08-08
      报错是啥?
      08-08
      赞同
      回复
    • A君子如玉
      A君子如玉
      08-09回复白宦成
      您好,文档上说需在app.json中配置requireBackgroundModes: ['location']后使用,但是在app.json配置了报 无效的 appJSON["requireBackgroundModes"],请问使用后台持续定位,具体怎么配置的​
      08-09
      赞同
      回复
  • K
    K
    08-08



    typescript没有相关的提示。然后真机调试,也不会console.log相关信息。是我走动太小了么.....我是第一次用微信小程序开发

    08-08
    赞同
    回复 1
    • 白宦成
      白宦成
      08-08
      是否做了前期的授权?
      08-08
      赞同
      回复
  • 一阵风
    一阵风
    星期一 18:02

    我已经都更新到最新版本了,还是没有 使用小程序期间和离开程序后  的选项,这是为什么呢?

    星期一 18:02
    赞同
    回复 1
    • 一阵风
      一阵风
      星期一 18:15
      终于找到问题在哪里了,接口说明下的注意事项中的 需在app.json中配置requireBackgroundModes: ['location']后使用 这个说明出错了,正确的应该是 requiredBackgroundModes ,还好找查了下全局配置文档
      星期一 18:15
      赞同
      回复