微信小程序获取用户头像,由于用户隐私策略调整,腾讯对获取用户信息也进行了调整。
记录内容如下:
1 新方式
新的方式:当触发获取用户头像时,由用户选择头像图片,输入昵称。
具体代码如下,即,昵称:改为用户输入方式;头像:改为用户可选择提供。
<form bindsubmit="userInfoLogin">
<input name="nickname" type="nickname" class="calculate-input" placeholder="请输入昵称" value="{{nickName}}" />
<button class="move-anim-box weight-save" type="primary" form-type="submit">保存</button>
</form>
userInfoLogin(e) {
this.setData({
nickName: e.detail.value.nickname
})
},
2 调整说明
按照开发使用基础库,采取了不同的策略。下文摘自腾讯开发指南:
自 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 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表: