小程序中首次獲取位置權限失敗后,主動引導用戶授權方案


最近做的"湖北垃圾治理"小程序

初次進入監督舉報頁面后,會使用  wx.getLocation 調起用戶的位置授權,

如果點擊允許,則能在地圖上顯示當前定位;但是當用戶點擊取消后,就無法正常使用地圖定位功能。

並且小程序會記錄用戶的這個授權設置,除了刪除小程序再重新進入,否則位置權限就一直無法獲得,地圖一直無法定位。

因此我們需要主動引導用戶給予位置權限。以下是代碼:

onLoad() {
    wx.getLocation({
      type: "wgs84",
      success(res) {
        //如果首次授權成功則執行地圖定位操作,具體實現代碼與此文無關,就不貼出
      },
      fail: function(res) {
        //授權失敗
        wx.getSetting({
          //獲取用戶的當前設置,返回值中只會出現小程序已經向用戶請求過的權限
          success: function(res) {
            //成功調用授權窗口
            var statu = res.authSetting;
            if (!statu["scope.userLocation"]) {
              //如果設置中沒有位置權限
              wx.showModal({
                //彈窗提示
                title: "是否授權當前位置",
                content:
                  "需要獲取您的地理位置,請確認授權,否則地圖功能將無法使用",
                success: function(tip) {
                  if (tip.confirm) {
                    wx.openSetting({
                      //點擊確定則調其用戶設置
                      success: function(data) {
                        if (data.authSetting["scope.userLocation"] === true) {
                          //如果設置成功
                          wx.showToast({
                            //彈窗提示
                            title: "授權成功",
                            icon: "success",
                            duration: 1000
                          });
                          wx.getLocation({
                            //通過getLocation方法獲取數據
                            type: "wgs84",
                            success(res) {
                              //成功的執行方法
                            }
                          });
                        }
                      }
                    });
                  } else {
                    //點擊取消按鈕,則刷新當前頁面
                    wx.redirectTo({
                      //銷毀當前頁面,並跳轉到當前頁面
                      url: "index" //此處按照自己的需求更改
                    });
                  }
                }
              });
            }
          },
          fail: function(res) {
            wx.showToast({
              title: "調用授權窗口失敗",
              icon: "success",
              duration: 1000
            });
          }
        });
      }
    });
  }

 上述代碼可以每次進入頁面時,進行彈窗詢問,點擊取消則會不斷刷新彈窗提醒用戶授予位置權限。代碼可以直接使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM