评论

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

在 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 开始支持,低版本需做兼容处理。
点赞 2
收藏
评论

12 个评论

  • jones
    jones
    2019-08-07

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

    问题已经提交到社区

    2019-08-07
    赞同 8
    回复 1
    • 咔咔多
      咔咔多
      2019-12-19
      哥哥 请问一下,这个能持续多次时间呢?
      2019-12-19
      回复
  • 2019-10-11

    小程序实时定位,手机熄屏后,就无法再推送定位数据上来,请问这个怎么解决?

    2019-10-11
    赞同 3
    回复 1
    • 发表于移动端
      2020-04-23
      所以有解决办法吗
      2020-04-23
      回复
  • 蜕变
    蜕变
    2019-09-24

    请问下官方说小程序进入后台时间为五分钟,也就是说这五分钟内是可以在后台获取到定位的,如果五分钟后被杀死后,在后台也就获取不到定位

    2019-09-24
    赞同 2
    回复
  • b!ngogo
    b!ngogo
    2019-09-27

    小程序后台持续定位功能后苹果手机顶部会出现“微信正在活跃使用您的位置信息”,这怎么解决?

    2019-09-27
    赞同 1
    回复 1
    • 发表于移动端
      2020-04-23
      有办法解决吗
      2020-04-23
      回复
  • 王晓旭
    王晓旭
    2019-09-02

    您好,如果手机篡改了定位,这个持续定位功能还好用吗?

    2019-09-02
    赞同 1
    回复
  • 看客心
    看客心
    2019-10-10

    就是个getlocation的定时器

    2019-10-10
    赞同
    回复
  • 燕相马🐴ᯤ⁶ᴳ
    燕相马🐴ᯤ⁶ᴳ
    2019-08-19


    onLoad: function (options) {
      wx.getLocation({
        type: 'wgs84',
        success(res) {
          console.log(res);
          const latitude = res.latitude
          const longitude = res.longitude
          const speed = res.speed
          const accuracy = res.accuracy
        }
      })
      wx.onLocationChange(function (res) {
        console.log('location change', res)
      }),
        wx.startLocationUpdate({
          success(res) {
            console.log(res + '111');
          }
        })
    },

    到底是什么原因

    为何onLocationChange运行不出来啊?

    2019-08-19
    赞同
    回复 1
    • 飘逸丶麦子
      飘逸丶麦子
      2019-12-23
      老哥你确定你没写反吗?先开启再监听啊。。。
      2019-12-23
      回复
  • 一阵风
    一阵风
    2019-08-12

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

    2019-08-12
    赞同
    回复 2
    • 一阵风
      一阵风
      2019-08-12
      终于找到问题在哪里了,接口说明下的注意事项中的 需在app.json中配置requireBackgroundModes: ['location']后使用 这个说明出错了,正确的应该是 requiredBackgroundModes ,还好找查了下全局配置文档
      2019-08-12
      回复
    • 熊
      2019-09-06回复一阵风
      这个错误,官方在另一个问题里说会修改,然后到今天,官方文档还是错的,真是醉了
      2019-09-06
      回复
  • K
    K
    2019-08-08



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

    2019-08-08
    赞同
    回复 1
  • K
    K
    2019-08-08

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

    2019-08-08
    赞同
    回复 3
    • 白宦成 #Linux中国
      白宦成 #Linux中国
      2019-08-08
      报错是啥?
      2019-08-08
      回复
    • A君子如玉
      A君子如玉
      2019-08-09回复白宦成 #Linux中国
      您好,文档上说需在app.json中配置requireBackgroundModes: ['location']后使用,但是在app.json配置了报 无效的 appJSON["requireBackgroundModes"],请问使用后台持续定位,具体怎么配置的​
      2019-08-09
      回复
    • L
      L
      2019-10-17回复A君子如玉
      这个api目前只能在真机测试中有效。开发者工具无效。
      2019-10-17
      回复

正在加载...

登录 后发表内容