微信小程序 用户信息和位置信息相关权限

微信小程序 05/08 阅读 25 views次 人气 0
摘要:

微信小程序 用户信息和位置信息相关权限:"用户信息"的权限,不需要申明即可使;"位置信息"的权限,需要在全局文件app.json中进行声明才可以使用。

一、微信小程序,"用户信息"的权限,不需要申明即可使用。

   // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    });


二、微信小程序,"位置信息"的权限,需要在全局文件app.json中进行声明才可以使用。

声明代码(全局app.json):

"permission": {
    "scope.userLocation": {
        "desc": "你的位置信息将用于小程序位置接口的效果展示"
}

使用位置的案例代码:

  // 位置信息
  getLocation() {
    this.checkLocation();

    let that = this;
    wx.chooseLocation({
      success: function (res) {
        var latitude = res.latitude
        var longitude = res.longitude;
        that.setData({
          address: "经纬度:" + longitude + ", " + latitude,
        })
      }
    });
  },
  //校验位置权限是否打开
  checkLocation() {
    let that = this;
    //选择位置,需要用户授权   
    // wx.getSetting获取用户当前的授权状态
    wx.getSetting({
      success(res) {
        // res.authSetting用户授权结果
        if (!res.authSetting['scope.userLocation']) {
          // 提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。
          wx.authorize({
            scope: 'scope.userLocation',
            success() {
              wx.showToast({
                title: '授权成功!',
                duration: 1500
              })
            },
            fail() {
              that.showSettingToast('需要授权位置信息');
            }
          })
        }
      }
    })
  },
  // 打开权限设置页提示框
  showSettingToast: function (e) {
    wx.showModal({
      title: '提示!',
      confirmText: '去设置',
      showCancel: false,
      content: e,
      success: function (res) {
        if (res.confirm) {
          wx.navigateTo({
            url: '../logs/logs',
          })
        }
      }
    })
  }


三、用户手动设置权限

微信小程序_用户设置权限.jpg


四、代码应用场景说明

1、当用户在微信中,选择使用某小程序。

2、小程序通过微信提供的接口,获取到用户信息。

3、检查"位置权限"是否打开,如果未打开提示用户"需要授权位置信息"。

4、如果"位置权限"已经开通,获取到位置信息(通常为经纬度)。

5、小程序其他业务逻辑处理。


评论

表情

分享到: