溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題

發(fā)布時間:2021-06-26 09:51:30 來源:億速云 閱讀:145 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

首先,在page外定義一個公共函數(shù)用于發(fā)送獲取位置的請求

var getLocation = function (that) {
 wx.getLocation({
  type: 'wgs84',
  success: function (res) {
   // 經(jīng)緯度
   var latitude = res.latitude
   var longitude = res.longitude
   var aK = that.data.aK
   wx.request({
    url: 'https://api.map.baidu.com/geocoder/v2/?ak=' + aK + '&location=' + latitude + ',' + longitude + '&output=json',
    data: {},
    header: {
     'content-type': 'application/json'
    },
    success: function (res) {
     var city = res.data.result.addressComponent.city;
     that.setData({
      currentCity: city
     })
     wx.request({
      url: 'xxx' + city,
      data: {},
      header: {
       'content-type': 'application/json'
      },
      success: function (res) {
       that.setData({
        county: res.data,
       })
      },
     })
    }
   })
  },
  fail: function () {
   wx.showToast({
    title: '授權失敗',
    icon: 'success',
    duration: 1000
   })
  }
 })
}

然后,在page中需要位置調用page外部的getLocation 函數(shù)

wx.getSetting({
    success: (res) => {
     if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化進入該頁面,且未授權
      wx.showModal({
       title: '是否授權當前位置',
       content: '需要獲取您的地理位置,請確認授權,否則無法獲取您所需數(shù)據(jù)',
       success: function (res) {
        if (res.cancel) {
         that.setData({
          isshowCIty: false
         })
         wx.showToast({
          title: '授權失敗',
          icon: 'success',
          duration: 1000
         })
        } else if (res.confirm) {
         wx.openSetting({
          success: function (dataAu) {
           if (dataAu.authSetting["scope.userLocation"] == true) {
            wx.showToast({
             title: '授權成功',
             icon: 'success',
             duration: 1000
            })
            //再次授權,調用getLocationt的API
            getLocation(that);
           } else {
            wx.showToast({
             title: '授權失敗',
             icon: 'success',
             duration: 1000
            })
           }
          }
         })
        }
       }
      })
     } else if (res.authSetting['scope.userLocation'] == undefined) {//初始化進入
      getLocation(that);
     }
     else { //授權后默認加載
      getLocation(that);
     }
    }
})

上述過程執(zhí)行順序為:

1.先加載wx.getLocation彈出自己的授權框,如圖

如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題

然后,點擊確定即可授權,若點擊取消則取消授權,當再次需要授權時,會調用我們自定義的Modal框,如圖

如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題

其次,針對上述的Modal框點擊取消則關閉,若點擊確定則打開手機的地址授權設置,如圖

如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題

最后,若直接點擊左上方的返回箭頭則取消授權,若先選中地理位置按鈕,然后在點擊左上方的返回箭頭則授權成功,如圖

如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何解決微信小程序出現(xiàn)wx.getLocation再次授權的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI