更新时间:11月9日
由于PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称。
更新时间:9月28日
考虑到近期开发者对小程序用户头像昵称获取规则调整的相关反馈,平台将接口回收的截止时间由10月25日延期至11月8日24时。
调整背景
在小程序内,开发者可以通过 wx.login 接口直接获取用户的 openId 与 unionId 信息,实现微信身份登录,支持开发者在多个小程序或其它应用间匿名关联同一用户。
同时,为了满足部分小程序业务中需要创建用户的昵称与头像的诉求,平台提供了 wx.getUserProfile 接口,支持在用户授权的前提下,快速使用自己的微信昵称头像。
但实践中发现有部分小程序,在用户刚打开小程序时就要求收集用户的微信昵称头像,或者在支付前等不合理路径上要求授权。如果用户拒绝授权,则无法使用小程序或相关功能。在已经获取用户的 openId 与 unionId 信息情况下,用户的微信昵称与头像并不是用户使用小程序的必要条件。为减少此类不合理的强迫授权情况,作出如下调整。
调整说明
自 年 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 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表:
*针对低版本基础库,兼容处理可参考兼容文档
请已使用 wx.getUserProfile 接口的小程序开发者和已使用 wx.getUserInfo 接口的插件开发者尽快适配。小游戏不受本次调整影响。
最佳实践
小程序可在个人中心或设置等页面使用头像昵称填写能力让用户完善个人资料:
微信小程序基础库的问题
很多刚开始开发小程序的开发者经常会遇到在开发者工具的模拟器里面可以正常使用小程序的某个API,但是在预览(真机测试)时打开调试发现使用的API报错,但是开发工具里面的基础库是支持这个API的问题。
这个问题产生的原因是开发者没有区分清楚基础库版本。在开发者工具里面选择的基础库版本(假如是1.1.0),如果你的手机微信基础库版本是1.1.0或者以上,那么这款小程序就可以在微信上完美运行,但是如果你的手机微信的基础库版本是1.1.0以下的,那么很有可能你的手机在运行这款小程序时会出现各种问题,因为你的手机微信基础库版本低,不支持某些新的API,如果小程序里面使用了,在手机微信上是无法使用的。
我们可以动态的去改变自己小程序的基础库版本。如下图:
怎么能知道我们手机微信的基础库版本呢?在这里官方给了我们具体的API可以查询到当前的基础库版本。wx.getSystemInfo(OBJECT)------获取系统信息。官方API地址。使用API在回调方法里面可以看到当前的SDKVersion。这个SDKVersion,如果你是在开发者工具里面打印,得到的是当前卡发着工具里面的基础库版本号。如果你使用真机预览小程序,打开调试,打印出来的是当前手机微信的基础库版本。
wx.getSystemInfo(OBJECT) 回调部分字段图片:
注意:有的比较老的微信版本,在使用真机预览时,打印出的结果里面如果没有SDKVersion字段,请重装手机微信,或者多找你台手机进行测试。
官方解答没有SDKVersion字段截图:
微信小程序 基础库版本与客户端版本对应关系
如果觉得《小程序用户头像昵称获取规则调整公告及微信小程序基础库的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!