uni-app中如何在小程序端获取用户头像和昵称?
我用uni.getUserProfile获取用户信息,但只在微信开发者工具里能拿到,真机预览一直失败,提示“请先调用 login”。
我已经在onLoad里调了uni.login(),但还是不行,是不是顺序有问题?
我的代码大概是这样:
uni.login({
success: (loginRes) => {
console.log('登录成功', loginRes)
}
})
// 紧接着调用
uni.getUserProfile({
desc: '用于完善会员资料',
success: (res) => {
console.log('用户信息', res.userInfo)
},
fail: (err) => {
console.error('获取失败', err)
}
})
微信现在的规则是必须先完成login,而且必须等login的回调完成才能调getUserProfile。你的写法看起来像是同时发起两个请求,实际上login可能还没完成就调用了getUserProfile。
正确的写法应该是这样的:
真机和开发工具表现不一样是因为开发工具对一些校验做了宽松处理。另外注意现在微信对获取用户信息这块管得严,desc描述要写清楚用途,不然也可能被拒。