微信小程序gps定位API踩坑记录

单次定位

调用方法如下,该api存在严重bug,触发条件不明,小程序置于后台或锁屏后有概率触发,表现为多次调用后,获取的坐标卡死在某一点不动,或者出现大幅度跳跃,在某一固定点和当前位置之间来回挑动。该bug在iOS和android平台均有出现,而且该bug能跨小程序出现,即在小程序A触发后,小程序B内调用同一api就会触发bug,重启微信程序可解决,估计是微信的问题。因此该api适合单次低频率调用。

wx.getLocation({
	type:'gcj02', // 使用国标坐标系
  isHighAccuracy: true, // 高精度定位,会调用gps获取高精度坐标
  success: (res) => {} // 定位成功的回调函数
})

持续定位

持续定位需要多个API配合使用

  • wx.onLocationChange(function callback) 注册位置更新时触发的回调函数
  • wx.offLocationChange(function callback) 注销回调函数
  • wx.startLocationUpdate(Object object) 开始监听位置变化
  • wx.stopLocationUpdate(Object object) 停止监听

经测试,这一套api没有bug,能满足持续定位的要求,但是频繁调用startLocationUpdatestopLocationUpdate似乎也会造成定位数据异常,因此需要遵守调用顺序:

  1. wx.startLocationUpdate开启监听
  2. wx.onLocationChange注册监听函数
  3. 暂时不需要监听时,使用wx.offLocationChange注销监听函数,此后再也不需要监听时,再使用wx.stopLocationUpdate

相关文档

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值