收藏
回答

onLocationChange 实时定位 小程序切前后台会有影响?

好多开发者都遇到了这个 onLocationChange 的坑,官方的大爷们,你们花点功夫好好研究下,一天到晚要代码片段,都不给解决。。。导致项目都黄掉了。。。


回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-CJiang
    社区技术运营专员-CJiang
    2020-12-16

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),并提供下复现机型,微信版本号,系统版本号。

    2020-12-16
    有用
    回复
  • 吕磊
    吕磊
    2021-02-11

    可以按照这个思路先改下

      wx.startLocationUpdate({

            success: (res) => {

              wx.onLocationChange((data) => {

                //获取当前时间

                var currentTime =  new Date().getTime();

                //获取上次保存的位置信息

                var oldLocation = wx.getStorageSync('oldLocation');

                //获取上次执行的时间

                var oldTime = wx.getStorageSync('oldTime');

                //将经纬度拼接

                var newLocation = data.latitude+""+data.longitude;

                //判断当前的位置是否和上次位置不一致

                if(oldLocation!=newLocation){

                  //缓存当前最新位置

                  wx.setStorageSync('oldLocation',newLocation);

                  //缓存当前执行的时间

                  wx.setStorageSync('oldTime',currentTime);

                  //如果本次执行时间距离上次时间超过5s,将位置信息上传后台

                  if(currentTime-oldTime>5000){

                  }

                }

              });

              console.log('startLocationUpdate-res', res)

            },

            fail: (err) => {

              that.setData({

                modalName: 'DialogModal1'

              });

            }

          })


    2021-02-11
    有用
    回复 2
    • 𠃊N
      𠃊N
      2021-03-31
      谢谢你的回复,按你的思路也试过了。还是存在问题,部分机型可以,部分机型还是会中断。试过了很多方法,大部分新型手机都可以正常使用。我琢磨可能是因为,部分机型的内存不足,会导致小程序销毁。

      举例如华为P30 pro,绝大部分都可以,尤其是开启wx.onLocationChange 前,关闭下其它打开的软件,基本都是正常工作的,偶见问题。因个人开发者,没有那么多机型可以测试,只见到部分用户,经常中断。
      2021-03-31
      回复
    • 吕磊
      吕磊
      2021-04-11回复𠃊N
      那感觉没啥办法了,这种功能只能放在app上体验才会更好
      2021-04-11
      回复
登录 后发表内容
问题标签