getUserInfo 接口废弃说明
官方给出的废弃getUserInfo接口的通知链接:小程序登录、用户信息相关接口调整说明
废弃时间:2021年4月28日以后
废弃后的使用情况:无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。
重点:数据匿名、也不再向用户发起授权请求。
getUserProfile接口 代替 getUserInfo 接口
解决方法:改用 getUserProfile接口调试
支持版本:2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本)
优势:相比较getUserInfo 接口弹出的授权窗口,一点拒绝,之后再也无法弹出授权窗口。getUserProfile接口 完美修复了这个Bug
此次更新的原因:很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。
总结以下几个重点:
重点一:<button open-type="getUserInfo"/> 等同在 函数里直接调用 wx.getUserInfo的接口
重点二:2021年4月28日过后 改用 wx.getUserProfile接口 来代替 wx.getUserInfo接口
重点三:wx.getUserProfile(Object) 这里的Object 必须要有一个参数 desc 是 string类型的 用途:用来告诉用户为什么要获取用户的信息。
总结:如果你想向用户发起一个授权获取信息的请求,就不能使用 <button open-type="getUserInfo"/> 或者 wx.getUserInfo接口。 不想数据被匿名,也是同上。
改造示例:
使用uni-app开发的方法 来使用 button按钮标签与 uni.getUserProfile 接口的案例
<!-- 标签部分 -->
<!-- 登录按钮 -->
<button type="primary" class="btn-login" @click="getUserInfo">一键登录</button>
// js 部分
getUserInfo(){
uni.getUserProfile({
// desc 属性是必须要添加的属性 string类型 用途:是告知用户为什么需要获取用户信息
desc: '获取用户信息',
success(info){
// 这里获取的信息等同于 以前的getUserInfo返回的信息
console.log(info)
}
})
}
getUserProfile 接口的使用方法:
wx的文档: wx.getUserProfile(Object object) 的 微信文档说明 链接
uni-app的文档: uni.login(OBJECT) uni-app上使用的说明文档 链接