在用uniapp开发微信小程序时,想获取用户的微信头像和微信用户名
首先想到的是
uni.login({ provider: 'weixin', success: function (loginRes) { console.log(loginRes.authResult); }});
可是程序报错:[system] API `login` is not yet implemented
我在想是不是微信已废弃原有的微信登录api,
为优化用户的使用体验,平台将进行以下调整:
- 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID
- 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
- 新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
- 由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。
于是换成uni.getUserProfile(OBJECT),
uni.getUserProfile({desc: '用于您的页面展示用户头像与昵称',lang: 'zh_CN',success: res => { console.log(res);this.isShowLogin = false;this.userInfo = res.userInfo;},fail: err => {console.log(err.errMsg);}});
运行到内置浏览器后仍然显示[system] API `getUserProfile` is not yet implemented
最后发现,运行到小程序模拟器,微信开发者工具,再点击,就可以了!
友情提示:现在不能跳转到目标页面就直接要求用户授权,必须通过用户点击才可以。
威信搜索小程序:检索助手或者法务手册,查看实际运行效果。
来源地址:https://blog.csdn.net/cuilinlong/article/details/125825992