uni-app 微信小程序按钮获取头像失败

uni-app 微信小程序按钮获取头像失败

开发环境 版本号 项目创建方式
Windows windows11 HBuilderX

示例代码:

<button size="mini" type="primary" open-type="chooseAvatar"[@chooseavatar](/user/chooseavatar)="onChooseAvatar" class="mb-n10">请选择头像</button>  

操作步骤:

<button size="mini" type="primary" open-type="chooseAvatar"[@chooseavatar](/user/chooseavatar)="onChooseAvatar" class="mb-n10">请选择头像</button>  

onChooseAvatar(e) {
this.userinfo.avatar = e.detail.avatarUrl
uni.showToast({
title: e
})
console.warn(e)
},

预期结果:

能够正确获取头像

实际结果:

无法获取头像

bug描述:

<button size="mini" type="primary" open-type="chooseAvatar"[@chooseavatar](/user/chooseavatar)="onChooseAvatar" class="mb-n10">请选择头像</button>  

上述代码在某些手机中无法获取头像

更多关于uni-app 微信小程序按钮获取头像失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

报错还是没反应? 可以去微信社区中问一下微信小程序官方人员

更多关于uni-app 微信小程序按钮获取头像失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html


没有反应

回复 3***@qq.com: 那就去微信社区问问

回复 3***@qq.com: 给button增加@error看看有没有错误信息

回复 爱豆豆: 用的是uniapp做的,想要在这儿寻求以下帮助

回复 3***@qq.com: 我知道啊 但是你编译后是微信原生的代码啊 你运行原生代码 没有效果 最好的方法肯定是去对应的官方社区问问 能更快的解决问题

回复 3***@qq.com: 给button增加@error看看有没有错误信息

uni-app 开发微信小程序时,如果你在获取用户头像时遇到问题,可能是由于微信小程序的权限设置或代码实现问题。以下是一些可能的原因和解决方案:

1. 检查 button 组件的 open-type

微信小程序中,获取用户头像需要使用 button 组件,并且设置 open-typegetUserInfochooseAvatar(微信小程序基础库 2.21.2 及以上版本支持)。

<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">获取头像</button>

或者使用 chooseAvatar

<button open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">获取头像</button>

2. 处理 getUserInfochooseAvatar 事件

getUserInfochooseAvatar 事件中,你可以获取到用户的头像信息。

methods: {
  onGetUserInfo(e) {
    console.log(e.detail.userInfo.avatarUrl); // 用户头像
  },
  onChooseAvatar(e) {
    console.log(e.detail.avatarUrl); // 用户头像
  }
}

3. 检查微信小程序基础库版本

chooseAvatar 是微信小程序基础库 2.21.2 及以上版本才支持的功能。如果你的基础库版本较低,建议使用 getUserInfo

你可以在 app.json 中指定最低基础库版本:

{
  "requiredBackgroundModes": ["audio"],
  "requiredPrivateInfos": ["getUserInfo"],
  "sdkVersion": "2.21.2"
}

4. 检查用户授权

微信小程序获取用户头像需要用户授权。如果用户拒绝了授权,你将无法获取到用户头像。你可以在 onGetUserInfoonChooseAvatar 事件中处理用户拒绝授权的情况。

onGetUserInfo(e) {
  if (e.detail.userInfo) {
    console.log(e.detail.userInfo.avatarUrl); // 用户头像
  } else {
    console.log('用户拒绝了授权');
  }
}
回到顶部