最新uniApp微信小程序获取头像open-type=“chooseAvatar“ @chooseavatar方法

2023-11-07

小程序用户头像昵称获取规则调整公告

调整说明

自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整:

  1. 自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
  2. 自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。
  3. 「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持,覆盖iOS与安卓微信 8.0.16 以上版本),具体实践可见下方《最佳实践》。
  4. 小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.27.1 以下版本的头像昵称获取需求:对于来自低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称,开发者可继续使用以上能力做向下兼容。

对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表:

以上是微信小程序对用户头像昵称更改的公告,从上文不能看出之前用到的wx.getUserProfile、wx.getUserInfo将被弃用,不在返回正确的用户昵称及头像信息。emm......完全看不懂为什么微信小程序总是揪着这个功能不放,一而再再而三的改动...

新Api介绍及实战

头像昵称填写

从基础库 2.21.2 开始支持。

需要将 button 组件 open-type 的值设置为 chooseAvatar,当用户选择需要使用的头像之后,可以通过 bindchooseavataruniApp使用@chooseavatar事件回调获取到头像信息的临时路径。

项目实战以uniApp为例

<template>
	<view class="containar">
		<view class="avatarUrl">
			<button type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseavatar">
				<image :src="avatarUrl" class="refreshIcon"></image>
			</button>
		</view>
		<view class="nickname">
			<text>昵称:</text>
			<input type="nickname" class="weui-input" :value="nickName" @blur="bindblur"
				placeholder="请输入昵称" @input="bindinput"/>
		</view>

		<view class="btn">
			<view class="btn-sub" @click="onSubmit">保存</view>
		</view>
	</view>
</template>
export default {
		data() {
			return {
				avatarUrl: '',
				nickName: ''
			};
		},
		onLoad(option) {},
		methods: {
			bindblur(e) {
				this.nickName = e.detail.value; // 获取微信昵称
			},
			bindinput(e){
				this.nickName = e.detail.value; //这里要注意如果只用blur方法的话用户在输入玩昵称后直接点击保存按钮,会出现修改不成功的情况。
			},
			onChooseavatar(e) {
				let self = this;
				let {
					avatarUrl
				} = e.detail;
				uni.showLoading({
					title: '加载中'
				});
				uni.uploadFile({
					url: '后台uploadFile接口',
					filePath: avatarUrl,
					name: 'file',
					header: {
						token: '自己的token',
					},
					success: uploadFileRes => {
                        // 注意:这里返回的uploadFileRes.data 为JSON 需要自己去转换
						let data = JSON.parse(uploadFileRes.data);
						if (data.code === 0) {
							this.avatarUrl = data.data;
						}
					},
					fail: (error) => {
						uni.showToast({
							title: error,
							duration: 2000
						});
					},
					complete: () => {
						uni.hideLoading();
					}
				});
			},
			onSubmit() {
				if(this.nickName === ''){
					uni.showToast({
						icon: 'none',
						title: '请输入昵称'
					})
					return false;
				}
                // 这里做自己公司的存储逻辑
			}
		}
	};
.containar {
	.avatarUrl {
		padding: 80rpx 0 40rpx;
		background: #fff;
		button {
			background: #fff;
			line-height: 80rpx;
			height: auto;
			width: auto;
			padding: 20rpx 30rpx;
			margin: 0;
			display: flex;
			justify-content: center;
			align-items: center;
			.refreshIcon {
				width: 160rpx;
				height: 160rpx;
				border-radius: 50%;
			}
			.jt{
				width: 14rpx;
				height: 28rpx;
			}
		}
	}
	.nickname{
		    background: #fff;
		    padding: 20rpx 30rpx 80rpx;
		    display: flex;
		    align-items: center;
		    justify-content: center;
			.weui-input{
				padding-left: 60rpx;
			}
	}
	.btn{
		width: 100%;
		.btn-sub{
			width: 670rpx;
			margin: 80rpx auto 0;
			height: 90rpx;
			background: #DF8585;
			border-radius: 45rpx;
			line-height: 90rpx;
			text-align: center;
			font-size: 36rpx;
			color: #fff;
		}
	}
}

效果图:

 这次分享就到这里了。希望能帮助到你。如果有需要做小程序的可以私信我哦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最新uniApp微信小程序获取头像open-type=“chooseAvatar“ @chooseavatar方法 的相关文章

随机推荐

  • “定点打击”——XPath 使用细则(Just For Selenium WebDriver)(md重制版)

    定点打击 XPath 使用细则 Just For Selenium WebDriver md重制版 该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 Selenium WebDriver中有关元素定位的学习 需要XP
  • ts类型声明文件的正确使用姿势

    ts类型声明文件的正确使用姿势 ts声明文件类型 DefinitelyTyped社区已定义 npm install types jquery save dev 与npm一同发布 解释 package json 中有 types 字段 或者有
  • 动态链表

    define CRT SECURE NO WARINGS include
  • 数据库相关

    目录 第一章 数据库概述 1 1 数据库的好处 1 2 数据库的常见概念 1 3 数据库的存储特点 1 4 数据库的常见分类 1 5 SQL语言的分类 第二章 MySQL概述 2 1 MySQL的背景 2 2 MySQL的优点 2 3 My
  • 闲谈IPv6-IPv6地址的scope到底是什么?

    一台主机启动后 每一块网卡都会自动生成一个fe80打头的 链路本地地址 这个地址在Linux上你删都删不掉 不信你试试 在Windows是可以删掉的 但是只要你重置网卡 它就会自动生成 这个所谓的链路本地地址到底有何怪异 我的主机安装两块网
  • 复购客户sql

    复购客户 用户分析是电商数据分析中重要的模块 在对用户特征深度理解和用户需求充分挖掘基础上 进行全生命周期的运营管理 拉新 gt 活跃 gt 留存 gt 价值提升 gt 忠诚 请尝试回答以下3个问题 现在数据库中有一张用户交易表order
  • 大模型部署避坑指南之: undefined symbol: cublasLtGetStatusString,version libcublasLt.so.11

    问题描述 OSError opt conda envs python35 paddle120 env lib python3 7 site packages nvidia cublas lib libcublas so 11 symbol
  • 当我遇到线上内存溢出问题是如何查看的

    首先我们自己写一个demo 来模拟内存溢出 新建User类 private int id private String name byte a new byte 1024 1000 public User public User int i
  • python oj刷题网站_程序员常用的刷题网站

    1 Lintcode Lintcode com LintCode网站是国内较大的在线编程 测评网站 此网站提供各大IT公司的算法面试题类型 行分门别类 由简单到中等 再到难 便于不同水平的程序员进行刷题练习 同时网站支持多种语言 Java
  • LeetCode905. 按奇偶排序数组

    给你一个整数数组 nums 将 nums 中的的所有偶数元素移动到数组的前面 后跟所有奇数元素 返回满足此条件的 任一数组 作为答案 示例 1 输入 nums 3 1 2 4 输出 2 4 3 1 解释 4 2 3 1 2 4 1 3 和
  • PostgreSQL之pgsql命令行常用命令

    文章目录 1 登录 1 1 psql报错 1 2 psql 错误 致命错误 用户 postgres Password 认证失败 2 常用操作 1 登录 1 1 psql报错 详情 分析 C Users Administrator gt pg
  • typecho反序列化漏洞复现

    typecho框架存在反序列化漏洞 利用此漏洞可执行任意代码 环境搭建 第一步 第二步 第三步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 漏洞分析 typecho build install php 文件中 使用unseria
  • Eclipse 安装集成 FindBugs BUG分析插件

    一 下载eclipse软件 https www eclipse org downloads 下载Zip压缩包 解压缩即可 二 下载findbugs plugin压缩包 官网下载或者是从其他资源获取 http findbugs sourcef
  • 阿里推荐算法:BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transform

    这篇是阿里猜你喜欢的一篇transformer paper 含金量很高 注意 1 bert用在推荐系统中 将用户的历史序列看做是词序列 2 测试时 将序列的最后一个item进行masked Abstract 根据用户历史的行为信息 对用户动
  • [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇介绍分享英文论文审稿意
  • python1_4字符串

    字符串 string My name string My name string My name 字符串可以是单 双 三引号 三引号可以空行 res string 1 字符串的索引 res string 2 print res 如图所示1
  • rstudio 导出结果_R语言结果输出方法

    输出函数 cat sink writeLines write table 根据输出的方向分为输出到屏幕和输出到文件 1 cat函数即能输出到屏幕 也能输出到文件 使用方式 cat file sep fill FALSE labels NUL
  • SpringBoot--基础--09--条件注解

    SpringBoot 基础 09 条件注解 一 条件注解 1 1 代码和测试 SysService public interface SysService void show WindowService public class Windo
  • apache beam入门之group分组操作

    目录 apache beam 个人使用经验总结目录和入门指导 Java 如果我们希望将相同的元素进行分组 则可以用Group的转化方法进行操作 首先我们生成1个单词数据集 List
  • 最新uniApp微信小程序获取头像open-type=“chooseAvatar“ @chooseavatar方法

    小程序用户头像昵称获取规则调整公告 调整说明 自 2022 年 10 月 25 日 24 时后 以下统称 生效期 用户头像昵称获取规则将进行如下调整 自生效期起 小程序 wx getUserProfile 接口将被收回 生效期后发布的小程序