小程序获取用户信息的api改了,所以总结一下新的小程序获取用户信息的实现方式。
官方建议
step 1 只能使用button实现 弹框
<button open-type="getUserInfo" bindgetuserinfo='getU'>123</button>
点击这个button才会跳出那个授权的框 :

如果用户点了拒绝,那么下一次点击还会跳出授权的弹窗。
step 2 handler
getU:function(e){
console.log(e,'eee')
console.log(e.detail.errMsg)
var status=e.detail.errMsg;//判断拒绝还是同意的一个状态
if(status=='getUserInfo:fail auth deny'){//此时用户点击了拒绝
}
if(status=='getUserInfo:ok'){//此时用户点击了同意授权
}
},
step 3 用户信息展示
- 方式一
<open-data type='userNickName'></open-data>
<open-data type='userAvatarUrl'></open-data>
以这样的方式进行信息的展示,只要已经授权了,任意位置都可以展示
- 方式二
bindgetuserinfo='getU'
在这个事件处理函数里边会返回用户的信息。
用户点击拒绝时:

用户点击同意时:

getU:function(e){
console.log(e,'eee')
console.log(e.detail.errMsg)
var status=e.detail.errMsg;//判断拒绝还是同意的一个状态
if(status=='getUserInfo:fail auth deny'){//此时用户点击了拒绝
}
if(status=='getUserInfo:ok'){//此时用户点击了同意授权
}
},
此时e.detail.rawData
内含有我们需要展示的数据。
至此,获取用户信息升级完成。
网友评论