自 2022 年 10 月 25 日后,用户头像昵称获取规则作了调整:getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。
如业务需获取用户头像昵称,可以使用「头像昵称填写能力」
头像选择
需要将 button 组件 open-type
的值设置为 chooseAvatar
,当用户选择需要使用的头像之后,可以通过 bindchooseavatar
事件回调获取到头像信息的临时路径。
<button class="avatarBtn" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
onChooseAvatar(e) {
// 选中的微信头像或者相册图片的临时url路径
console.log(e.detail.avatarUrl);
}
这里获取到的url地址是微信返回的一个临时的url路径,不能直接交给服务器存到数据库里面,因为这个url会过期,本次获取了能展示出来,但是清理缓存再次重新登录,获取用户数据的时候就会报错,打印出来的临时url地址无法正常访问~所以一开始选中头像的时候我们可以把微信返回的头像的临时url路径上传到unicloud云存储空间,代码如下:
详细文档请进这里边看:概述 | uniCloud (dcloud.net.cn)
uniCloud.uploadFile({
filePath: filePath,
cloudPath: 'a.jpg',
onUploadProgress: function(progressEvent) {
console.log(progressEvent);
var percentCompleted = Math.round(
(progressEvent.loaded * 100) / progressEvent.total
);
},
success: function(res) {
//这里返回的fileID就是上传到云存储空间之后返回的上传的头像文件路径
console.log(res.fileID)
}
})
把fileID中的url路径直接存到云数据库里面作为用户表的头像图片url路径
这样重复登录的时候就可以正常渲染头像啦!
标签:头像,url,微信,路径,化小,unicloud,获取,progressEvent From: https://blog.csdn.net/qq_48539582/article/details/139666891