因头像为灰色才知道wx.getUserProfile代替wx.getUserInfo
真的是猝不及防,官方宣布用 wx.getUserProfile 代替 wx.getUserInfo 获取用户信息了,幸亏自己改了东西后用体验版测了下,头像出不来感觉不对查了下才知道,OMG,它更新了
(主要是做的这个小程序好久才改一下,就没多关注官方信息)

所以,在开发的时候要注意,各个部分能独立就独立,这样后期改动比较方便,不然会牵一发而动全身
1、登录与授权部分分开,登录是无感知的,先登录,后需要phoneNum再去授权phone
2、如果需要用户信息,放在登录,获取手机号后,(因为现在 wx.getUserProfile 每次都需要授权,有phone再去存储基本信息比较好)
感叹一下:原来的一次授权,后面直接获取信息可真好,授权与否还能当做新用户标识来用,现在就全靠存储数据判断是不是新用户了
(1)如果用户信息只是展示,那就用
<!-- 如果只是展示用户头像昵称,可以使用 <open-data /> 组件 -->
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>
不过这里也会有个小bug,就是偶尔用它展示时会报错: 渲染层网络层错误***status 562 ,所以最好是加个判断,如果数据库里有用户头像就展示库里的,没有的话再用这个 <open-data />展示比较好。
(2)如果还要存储信息, 则判断 wx.getUserProfile 来决定页面button的情况,这样也可以兼容低版本
if (wx.getUserProfile) {
this.setData({
canIUseGetUserProfile: true
})
}
<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
<button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
官方介绍:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

浙公网安备 33010602011771号