美文网首页uni-app小程序
微信小程序实时获取最新的定位(经纬度)

微信小程序实时获取最新的定位(经纬度)

作者: 梦未央_new | 来源:发表于2021-09-09 14:06 被阅读0次

项目开发过程中遇到,一个需求实时获取最新的经纬度,来计算距离,通常我们使用的都是wx.getLocation进行获取定位信息,但是微信官方文档提示为了节能,wx.getLocation不能持续获取经纬度,推荐使用 wx.onLocationChange

wx.getLocation 的限制

wx.onLocationChange 使用


使用wx.onLocationChange,需要搭配wx.startLocationUpdateBackground进行使用

wx.onLocationChange使用步骤

1.在app.json里面进行配置

"requiredBackgroundModes": [
    "location"
  ]

2.在自己的业务逻辑里面添加

wx.startLocationUpdateBackground({
    success:(res)=>{
        //成功的逻辑
       wx.onLocationChange((data)=>{  //获取实时的定位信息
             console.log(data)
       })
    },
    fail:(err)=>{
        //失败的逻辑
        //1.wx.showModal引导用户授权
        //2.通过wx.openSetting让用户开启权限

      wx.showModal({    //引导用户授权
            content: '提示语文本.....',
            confirmText: "确认",
            cancelText: "取消",
            success: function (res) {
                //点击“确认”时打开设置页面
              if (res.confirm) {
                wx.openSetting({  //打开设置页面让用户选择权限
                  success: (res) => {
                    if(res.authSetting["scope.userLocationBackground"] == true){
                      wx.onLocationChange((data)=>{  //实时获取用户最新的经纬度信息
                        console.log(data)
                      })
                    }
                    }
                })
              } else { //取消打开设置授权页面
                wx.showToast({
                  title: "取消授权~",
                  icon: 'none',
                })
              }
            }
      })
    }
})

3.用户授权实时获取最新的经纬度信息

重点

wx.onLocationChange使用,必须搭配wx.offLocationChange进行使用,根据业务需求调用wx.offLocationChange停止请求经纬度,不然wx.onLocationChange不停的获取最新的经纬度信息,消耗电

相关文章

网友评论

    本文标题:微信小程序实时获取最新的定位(经纬度)

    本文链接:https://www.haomeiwen.com/subject/rlviwltx.html