赞
踩
注:以uniapp为例,部分写法与原生微信有所不同
可直接通过wx.getUserProfile
的方式获取用户信息,然后填充头像和昵称,但在2022 年 10 月 25 日已被回收,返回信息为默认灰色头像和昵称:‘微信用户’,
以下方式仅针对开发调试,不上线的情况:
在微信开发者工具中:右上角详情 -> 本地设置 -> 调试基础库-> 选择2.21.2~2.27.0之间的版本-> 推送-> 确定
设置后可在开发版本使用这种方式获取用户信息
参考文档:小程序用户头像昵称获取规则兼容文档
<image class="img" :src="userInfo.avatarUrl ? userInfo.avatarUrl : '/static/images/headers.jpg'" @click="getUser"></image>
<text>{{ userInfo.nickName || '未登录' }}</text>
getUser() {
wx.getUserProfile({
desc: '用于完善用户信息', // 新版已弃用,只能获取默认头像和昵称,然后onChooseAvatar方法获取头像
success: (res) => {
console.log(res)
this.userInfo = res.userInfo;
this.nickname = this.userInfo.nickName;
}
})
},
参考文档:头像昵称填写能力及对应原生写法
需要将 [button] 组件 open-type
的值设置为 chooseAvatar
,当用户选择需要使用的头像之后,可以通过 bindchooseavatar
(对应uniapp中的写法如下) 事件回调获取到头像信息的临时路径。
需要将 [input] 组件 type
的值设置为 nickname
,当用户在此input进行输入时,键盘上方会展示微信昵称
<button v-if="userInfo.avatarUrl" class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<image class="img" :src="userInfo.avatarUrl ? userInfo.avatarUrl : '/static/images/headers.jpg'"></image>
</button>
<input type="nickname" @blur="handleBlur()" :focus="focus" v-model="nickname">
// 获取微信头像 onChooseAvatar(e) { this.userInfo.avatarUrl = e.detail.avatarUrl; //头像地址 uni.setStorageSync("avatarUrl",this.avatarUrl) }, // 获取用户昵称 handleBlur() { if(this.nickname==''){ uni.showToast({ title:"不能为空", icon:'error' }) }else{ this.isEdit = false } },
wx.authorize
方法中的scope.userInfo
也不能再使用,
通过wx.createUserInfoButton
弹出用户授权是小游戏的方法,不是小程序!!!
可以使用的部分参考文档:用户授权列表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。