微信小程序?qū)崟r獲取最新的定位(經(jīng)緯度)

項目開發(fā)過程中遇到,一個需求實時獲取最新的經(jīng)緯度,來計算距離,通常我們使用的都是wx.getLocation進行獲取定位信息,但是微信官方文檔提示為了節(jié)能,wx.getLocation不能持續(xù)獲取經(jīng)緯度,推薦使用 wx.onLocationChange

wx.getLocation 的限制

wx.onLocationChange 使用


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

wx.onLocationChange使用步驟

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

"requiredBackgroundModes": [
    "location"
  ]

2.在自己的業(yè)務(wù)邏輯里面添加

wx.startLocationUpdateBackground({
    success:(res)=>{
        //成功的邏輯
       wx.onLocationChange((data)=>{  //獲取實時的定位信息
             console.log(data)
       })
    },
    fail:(err)=>{
        //失敗的邏輯
        //1.wx.showModal引導用戶授權(quán)
        //2.通過wx.openSetting讓用戶開啟權(quán)限

      wx.showModal({    //引導用戶授權(quán)
            content: '提示語文本.....',
            confirmText: "確認",
            cancelText: "取消",
            success: function (res) {
                //點擊“確認”時打開設(shè)置頁面
              if (res.confirm) {
                wx.openSetting({  //打開設(shè)置頁面讓用戶選擇權(quán)限
                  success: (res) => {
                    if(res.authSetting["scope.userLocationBackground"] == true){
                      wx.onLocationChange((data)=>{  //實時獲取用戶最新的經(jīng)緯度信息
                        console.log(data)
                      })
                    }
                    }
                })
              } else { //取消打開設(shè)置授權(quán)頁面
                wx.showToast({
                  title: "取消授權(quán)~",
                  icon: 'none',
                })
              }
            }
      })
    }
})

3.用戶授權(quán)實時獲取最新的經(jīng)緯度信息

重點

wx.onLocationChange使用,必須搭配wx.offLocationChange進行使用,根據(jù)業(yè)務(wù)需求調(diào)用wx.offLocationChange停止請求經(jīng)緯度,不然wx.onLocationChange不停的獲取最新的經(jīng)緯度信息,消耗電

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容