获取用户信息(wx.getUserInfo())
该方法使用需要 用户授权 scope.userInfo 之后才能调用
写个小案例
wxml
<button type="primary" open-type="getUserInfo" bindgetuserinfo="getUserInfo">询问是否同意授权并获取用户信息</button><view class="container"><text>{{ userInfo.nickName }}</text><text>{{userInfo.city}}</text><text>{{userInfo.province}}</text><text>{{userInfo.language}}</text><image src='{{ userInfo.avatarUrl }}'></image></view>
.js
data: {userInfo: {},},getUserInfo:function(){let that = this//首先查看是否得到用户 的授权wx.getSetting({success:function(res){//console.log(res)//res.authSetting['scope.userInfo'] 代表用户授予权限的状态console.log(res.authSetting['scope.userInfo'])if(res.authSetting['scope.userInfo']){//如果用户给与了这个权限 可以进行获取用户信息wx.getUserInfo({success: (res) => {console.log(res.userInfo)that.setData({userInfo: res.userInfo})}})}else{//如果用户没有给与这个权限则 发送询问权限的请求wx.authorize({scope:"scope.userInfo",//询问授权的属性success:function(res){console.log(res)}})}}})},
注:回调中的 this 和 当前页面 this 不一样 解决方案,1:使用 ES 6 语法,2:定义 that(let that = this 然后 that.data)
es6语法
wx.getUserInfo({success: (data) => {this.setData({// 如何确定数据被更新?调试器中 AppDatauserInfo: data.userInfo})}})