值得注意的是,现在只能用户主动点击一个东西触发事件才可以在数据层获取到用户信息了,数据层获取到才可以更新到数据库,列举一下之前的方式,现在就只有这一种可用。 具体调整可以看看这篇文章 developers.weixin.qq.com/community/d…
1.使用变量来判断是否可以使用这个信息,然后利用open-data(不推荐使用)
特点:不推荐使用,且只能在渲染层显示,数据层拿不到,所以也无法更新数据库
canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName')
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>
2.利用wx.getUserProfile来获取用户的信息(推荐使用,切只有它能在逻辑层或者说数据层拿到用户信息)
特点:推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
getUserProfile(e) {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
}
详情移步:developers.weixin.qq.com/miniprogram…
3.利用按钮的open-type="getUserInfo"跟事件源对象来获取userInfo(基本不用,已经不能用)
特点:返回匿名的用户个人信息
<button wx:elif="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo">
canIUse: wx.canIUse('button.open-type.getUserInfo'),
getUserInfo(e) {
// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
console.log(e)
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}

4.利用wx.getUserInfo来获取用户信息(不推荐使用,已经不能用)
特点:不需要什么东西,直接就能拿到微信用户的信息,不推荐使用getUserInfo获取用户信息,自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
wx.getUserInfo({
success: function(res) {
console.log('res',res)
}
})