在 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 开始支持,低版本需做兼容处理。
建议onLocationChange能提供上报频率,和移动精度选择项
问题已经提交到社区
小程序实时定位,手机熄屏后,就无法再推送定位数据上来,请问这个怎么解决?
请问下官方说小程序进入后台时间为五分钟,也就是说这五分钟内是可以在后台获取到定位的,如果五分钟后被杀死后,在后台也就获取不到定位
小程序后台持续定位功能后苹果手机顶部会出现“微信正在活跃使用您的位置信息”,这怎么解决?
您好,如果手机篡改了定位,这个持续定位功能还好用吗?
就是个getlocation的定时器
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运行不出来啊?
我已经都更新到最新版本了,还是没有 使用小程序期间和离开小程序后 的选项,这是为什么呢?
typescript没有相关的提示。然后真机调试,也不会console.log相关信息。是我走动太小了么.....我是第一次用微信小程序开发
hi,我为什么没有这个api呢?小程序开发工具已经更新到最新的了,然后调试基础库也到2.8.0了,但是就是没有这个功能。