在微信小程序开发中,经常需要获得用户的信息,如用户昵称、性别、地区等信息
获取用户信息的流程是
首先使用wx.getSetting查询用户当前的设置,是否获得用户授权,如果获得用户授权,再调用wx.getUserInfo获得用户信息
wx.getSetting会返回一个Object,包含用户授权结果,代码如下所示。
wx.getSetting({success(res) {console.log(res.authSetting)// res.authSetting = {// "scope.userInfo": true,// "scope.userLocation": true// }}})
可以看到,wx.getSetting的success回调中得到了一个用户设置的对象,在这个对象中,res.authSetting就是用户的授权结果
例如,想要知道是否已取得获取用户信息的授权,那么就是res.authSetting['scope.userInfo'],如果值为true,就是取得了获取用户信息的授权,如示例4-4所示。
index.wxml--------------<view><buttonwx:if="{{canIUse}}"open-type="getUserInfo"bindgetuserinfo="bindGetUserInfo">授权登录</button></view>================================================================index.js---------------------Page({data: {canIUse: wx.canIUse('button.open-type.getUserInfo')},onLoad() {// 查看是否授权wx.getSetting({success(res) {if (res.authSetting['scope.userInfo']) {// 已经授权,可以直接调用 getUserInfo 获取头像昵称wx.getUserInfo({success(res) {console.log(res.userInfo)}})}}})},bindGetUserInfo(e) {console.log(e.detail.userInfo)}})
示例4-4中,在onLoad生命周期函数里,首先通过wx.getSetting获取用户的设置,然后根据res.authSetting['scope.userInfo']判断是否获得了用户的授权,如果取得了授权,则使用wx.getUserInfo获取用户的信息
