当前位置: 首页 > article >正文

Uniapp 微信小程序 最新 获取用户头像 和 昵称 方法 有效可用

文章目录

  • 前言
  • 代码实现
  • 运行效果
  • 技术分析


前言

同事有个需求 授权获取用户头像 和 昵称 。之前做过线上小程序发版上线流程 就实现了下 最新的方法和 api 有些变化 记录下


代码实现

先直接上代码

<template>
  <view class="container">
    <button
      class="choose-avatar-button"
      open-type="chooseAvatar"
      @chooseavatar="onChooseavatar"
    >
      获取头像
    </button>

    <view class="user-info">
      <image
        class="avatar"
        :src="userInfo.avatarUrl"
        v-if="userInfo.avatarUrl"
        mode="aspectFill"
      ></image>

      <input
        class="nickname-input"
        type="nickname"
        placeholder="请输入昵称"
        v-model="userInfo.userName"
        @blur="getNickname"
      />
      <text class="display-username">{{ userInfo.userName }}</text>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      userInfo: {
        avatarUrl: "",
        userName: "",
      },
    };
  },
  methods: {
    onChooseavatar(e) {
      console.log("e", e);
      this.userInfo.avatarUrl = e.detail.avatarUrl;
    },
    getNickname(e) {
      console.log("e", e);
      this.userInfo.userName = e.detail.value;
    },
  },
};
</script>

<style lang="scss">
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background-color: #f5f5f5; /* 设置背景颜色 */
  height: 100vh; /* 设置容器高度为100%视口高度 */
}

.choose-avatar-button {
  background-color: #007bff; /* 按钮背景色 */
  color: white; /* 字体颜色 */
  border: none; /* 去掉边框 */
  border-radius: 5px; /* 按钮圆角 */
  padding: 10px 20px; /* 按钮内边距 */
  font-size: 18px; /* 字体大小 */
  margin-bottom: 20px; /* 下边距 */
}

.user-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: white; /* 用户信息背景 */
  border-radius: 10px; /* 圆角 */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
  padding: 20px; /* 内边距 */
  width: 80%; /* 宽度 */
}

.avatar {
  width: 100px; /* 头像宽度 */
  height: 100px; /* 头像高度 */
  border-radius: 50%; /* 圆形 */
  margin-bottom: 10px; /* 下边距 */
}

.nickname-input {
  width: 100%; /* 输入框宽度 */
  padding: 10px; /* 内边距 */
  border: 1px solid #ccc; /* 边框 */
  border-radius: 5px; /* 圆角 */
  font-size: 16px; /* 字体大小 */
  margin-bottom: 10px; /* 下边距 */
}

.display-username {
  margin-top: 10px; /* 上边距 */
  font-size: 20px; /* 字体大小 */
  color: #333; /* 字体颜色 */
}
</style>

运行效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

技术分析

旧版本的 getUserProfile和getUserInfo接口不再能获取用户信息

  • chooseAvatar
    这个方法用于处理用户选择头像的操作。当用户点击按钮并选择头像时,open-type=“chooseAvatar” 会触发这个事件。
    事件参数 e 中包含了用户选择的头像信息。具体来说,e.detail.avatarUrl 会返回用户选择的头像的 URL。
    方法体内使用 this.userInfo.avatarUrl = e.detail.avatarUrl; 将获取到的头像 URL 保存到组件的 userInfo 数据对象中,更新头像的显示。

  • getNickname
    这个方法用于处理用户输入昵称时的操作。当用户在昵称输入框中输入内容并失去焦点时,@blur=“getNickname” 会触发这个事件。
    同样,事件参数 e 中含有用户输入的相关信息,e.detail.value 将返回用户在输入框中输入的昵称内容。
    方法体内使用 this.userInfo.userName = e.detail.value; 将获取到的昵称保存到 userInfo 数据对象中,更新显示的昵称内容。
    总结来说,onChooseavatar 方法用于更新用户头像,getNickname 方法用于更新用户昵称,这两者都通过事件处理和数据绑定来实现用户信息的动态更新。

有用的 不妨 点个赞评论下


http://www.kler.cn/a/321808.html

相关文章:

  • NPOI 实现Excel模板导出
  • python selenium库的使用:通过兴趣点获取坐标
  • 在 CentOS 系统中,您可以使用多种工具来查看网络速度和流量
  • 机器学习【激活函数】
  • 硬件工程师之电子元器件—二极管(4)之热量对二极管温度特性的影响
  • C++算法练习-day40——617.合并二叉树
  • Git 常用操作命令说明
  • 基于python深度学习遥感影像地物分类与目标识别、分割实践技术
  • 343.整数拆分
  • 如何用ChatGPT制作一款手机游戏应用
  • 【前端】ES9:异步遍历器
  • 【C/C++】initializer_list
  • Ansible 剧本的执行
  • 【数据结构】什么是二叉搜索(排序)树?
  • 基于SSM+小程序的自习室选座与门禁管理系统(自习室1)(源码+sql脚本+视频导入教程+文档)
  • Docker 付费订阅价格大幅上调,免费订阅功能受限,云计算和安全产品有调整
  • python爬虫初体验(四)—— 百度文库PPT的爬取
  • cpu路、核、线程、主频、缓存
  • 解决macOS MySQL安装后不能远程访问的问题
  • Vue3.3新特性defineModel
  • 2023_Spark_实验十一:RDD基础算子操作
  • 从零开始使用树莓派debian系统使用opencv4.10.0进行人脸识别(保姆级教程)
  • Linux(Ubuntu)源码安装postgresql16.3
  • mysql数据库的基本管理
  • 【后端】【nginx】nginx常用命令
  • 力扣224. 基本计算器