小程序资讯

微信小程序如何适配用户头像昵称获取规则调整

小程序资讯 2022-11-22 17:40:21 | 阅读:1153 | 作者:方维网络 | 标签:小程序定制开发    
小程序调整

相信大家都收到这个通知了,关于微信小程序获取用户头像和昵称这个问题,可谓变化频繁,可真苦了开发者,每次重新提交代码,都需要重新适配。
最开始是使用wx.getUserInfo ,后面改为wx.getUserProfile,现在又变了。

调整说明

自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整:

自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。
「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持,覆盖iOS与安卓微信 8.0.16 以上版本),具体实践可见下方《最佳实践》。
小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.27.1 以下版本的头像昵称获取需求:对于来自低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称,开发者可继续使用以上能力做向下兼容。

对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表:

小程序表

从上表可看出  没有一个是全部通用的,那怎么办呢?只能写3种代码进行适配了。代码如下
const version = wx.getSystemInfoSync().SDKVersion

if (compareVersion(version, '2.21.1') >= 0) {
  //使用获取昵称头像接口
} else {
  //使用wx.getUserProfile接口
}

因为wx.getUserInfo 是非常老的接口,基本不用适配,正常用户都升级了。

获取头像代码

<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
    <image class="avatar" src="{{avatarUrl}}"></image>
 </button>

onChooseAvatar(e) {
    const { avatarUrl } = e.detail 
    this.setData({
      avatarUrl,
    })
}

获取昵称代码

<input type="nickname" class="weui-input" placeholder="请输入昵称"/>

input type为nickname即可 还是挺方便的

获取昵称有个坑是,他获取的只是微信文件等,要让别人看到,还是需要上传到服务器,所以需要多一步。