在 2019 年 7 月 30 日发布的小程序基础库 v2.8.0 版本中,新增了小程序后台持续定位功能,在这篇文章中,将为你介绍这个能力的用途和用法。
新增的后台持续定位能力能干嘛?
在基础库版本 v2.8.0 版本以前,小程序提供的 API 仅有 wx.openLocation
、wx.getLocation
和 wx.chooseLocation
,这些 API 都仅能用于某一时刻用户位置的获取和选择,这导致在进行产品设计上,是无法完成对于一些具有实时性要求的需求。所有的用户位置状态都是一个特定的时刻。
新增的后台持续定位能力可以让你在你的地图应用中实现实时的定位。在没有该能力之前,如果你需要实现类似的功能,需要每隔一秒获取一次地址,以获取当前用户的位置,并进行比较,但晒在新的后台持续定位能力中,你可以直接在 wx.onLocationChange
方法中获取到变动后的位置,相比于之前的轮询的方式,新的方式会更加的省电。
新增的后台持续定位能力应当如何使用?
在使用新的后台持续定位能力时,你需要根据实际的情况,选择使用 wx.startLocationUpdate
或 wx.startLocationUpdateBackground
从而开启自动获取数据。
随后,使用 wx.onLocationChange
来获取变动后的位置,从而对该位置进化后续的业务逻辑的判断。
当你使用完成后,需要使用 wx.stopLocationUpdate
来禁用后台持续定位能力,节省设备电量。
后台持续定位能力使用注意事项?
在使用后台持续定位能力时需要注意两点:
- 调用前需要 用户授权 scope.userLocationBackground
- 该功能从基础库 2.8.0 开始支持,低版本需做兼容处理。
这个能力,如果中途打电话,持续定位还会运行吗?