微信小程序中获取用户信息接口有变,自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的(空的)用户个人信息
需要调用getUserProfile才可以授权获取用户信息
下面是关于在Taro框架中获取权限的方法,供大家参考:
获取用户信息(昵称/头像/地区/性别)
<AtButton circle type='secondary' onClick={this.handleGetUserProfile}>微信授权昵称头像地区性别</AtButton>
handleGetUserProfile = () => {
Taro.getUserProfile({
lang: 'zh_CN',
desc: "获取你的昵称、头像、地区及性别",
success: response => {
console.log(response);
const wxUserInfo = response.userInfo;
// const { openId } = this.state;
console.log('getUserProfile', wxUserInfo);
Taro.setStorageSync(
"UserInfo", {
wxUserInfo: wxUserInfo,
name: 123
})
Taro.getStorage({
key: 'UserInfo',
success (res) {
console.log(' 我是缓存数据', res);
}
})
},
fail: () => {
//拒绝授权
console.error("您拒绝了请求");
return;
}
})
};
获取用户手机号(微信授权)
<AtButton type='primary' openType='getPhoneNumber' onGetPhoneNumber={this.getTel}>微信获取手机号</AtButton>
getTel = (e) => {
console.log(e.detail);
this.setState({ isNum: true })
let { encryptedData, iv } = e.detail
Taro.checkSession({
success: function () {
console.log('有session,已登陆');
//session_key 未过期,并且在本生命周期一直有效
},
fail: function () {
// session_key 已经失效,需要重新执行登录流程
console.log('未登陆');
//重新登录
Taro.login({
success (res) {
console.log(res);
let code = res.code
Taro.request({
url: 'url',//后端url
method: 'GET',
data: {
// appi,//账号
// secret,//账号
code,//login获取到的code
encryptedData,
iv
},
success (phoneNumber) {
console.log(phoneNumber)
}
})
}
})
}
})
}
希望对你有所帮助!