微信小程序获取用户信息,返回nickName是微信用户,返回了匿名的头像名称原因。
获取用户信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo。方法做了调整:用户信息接口
使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。
原生写法:
<button class="primary" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">获取个人信息</button>
一开始我是按照原生写法来写的,发现弹窗也调不出,后面换成平时的button点击事件就可以了。
uni-app写法:
<button class="primary" open-type="getUserInfo" @click="bindGetUserInfo">获取个人信息</button>
bindGetUserInfo(e) {
const _this = this;
wx.getUserProfile({
desc: '用于完善资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
// console.log('getUserProfile', res.userInfo);
wx.setStorageSync('userInfo', res.userInfo);
wx.setStorageSync('hasUserInfo', true);
},
fail: (err) => {
console.log('err', err);
}
})
把用户信息存储到本地缓存,后面如果需要直接从本地缓存
如有错误或不足,欢迎各位大佬评论指正。