微信小程序定位授权方法判断,要求必须授权。

  

微信小程序定位授权方法判断:未授权弹出授权对话框,确定授权,通过wx.openSetting发起授权请求,再次授权,调用wx.getLocation的API,用户首次进入页面,调用wx.getLocation的API

//定位方法
getUserLocation: function () {
   var _this = this;
   wx.getSetting({
    success: (res) => {
     // res.authSetting['scope.userLocation'] == undefined  表示 初始化进入该页面
     // res.authSetting['scope.userLocation'] == false  表示 非初始化进入该页面,且未授权
     // res.authSetting['scope.userLocation'] == true  表示 地理位置授权
     if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
      //未授权
      wx.showModal({
       title: '请求授权当前位置',
       content: '需要获取您的地理位置,请确认授权',
       success: function (res) {
        if (res.cancel) {
         //取消授权
         wx.showToast({
          title: '拒绝授权',
          icon: 'none',
          duration: 1000
         })
        } else if (res.confirm) {
         //确定授权,通过wx.openSetting发起授权请求
         wx.openSetting({
          success: function (res) {
           if (res.authSetting["scope.userLocation"] == true) {
            wx.showToast({
             title: '授权成功',
             icon: 'success',
             duration: 1000
            })
            //再次授权,调用wx.getLocation的API
            _this.geo();
           } else {
            wx.showToast({
             title: '授权失败',
             icon: 'none',
             duration: 1000
            })
           }
          }
         })
        }
       }
      })
     } else if (res.authSetting['scope.userLocation'] == undefined) {
     //用户首次进入页面,调用wx.getLocation的API
      _this.geo();
     }
     else {
      console.log('授权成功')
      //调用wx.getLocation的API
      _this.geo();
     }
    }
   })

  }, 
相关文章