uniapp 微信小程序 获取用户头像和昵称

22 篇文章 7 订阅
订阅专栏

一、背景

自2022年10月25日后,小程序 wx.getUserProfile 接口 被收回,通过 wx.getUserInfo 接口获取用户头像将统一返回默认 灰色头像,昵称将统一返回 “微信用户”。如需获取用户头像昵称,可以手动获取,具体步骤👉「 头像昵称填写能力」

 ✍GitHub完整代码地址👉: https://github.com/cheinlu/groundhog-charging-system/blob/master/front-mini-programe/components/info/info.vue

✍Gitee完整代码地址👉: front-mini-programe/components/info/info.vue · cheinlu/土拨鼠充电系统 - Gitee.com

规则说明指引:

小程序用户头像昵称获取规则调整公告 | 微信开放社区

二、头像昵称填写

头像昵称填写指引: 头像昵称填写 | 微信开放文档

2.1、默认状态

2.2、头像选择

①头像选择

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

2.2.1、头像选择--具体实现:

当选择头像后就会触发在button上的 @chooseavatar 回调获取到头像信息,在这里可以选择头像拿到图片地址(选择方式:微信头像/相册/拍照),然后将选择的图片上传到接口服务器上去👇

2.2.2、头像选择--效果展示:

2.3、昵称填写

②昵称填写

input组件 type 的值设置为 nickname,当用户在此input进行输入时,键盘上方会展示微信昵称。通过input的@blur事件来获取到自己输入的昵称

2.3.1、昵称填写--具体实现:

鼠标点击输入框时就会自动获取自己的微信昵称,利用@blur事件来获取到自己输入的昵称

2.3.2、昵称填写--效果展示:

2.4、完整代码:

<template>
  <view class="my-user-info">
    <view class="top-box">
      <button class="avatar" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
        <image :src="avatarUrl" class="avatar-img"></image>
      </button>
      <input class="nickname" type="nickname" :value="nickname" @blur="bindblur" placeholder="请输入昵称" />
    </view>
    <!-- 内容区域 -->
    <view class="panel-list">
      <view class="panel" @click="logout">
        <view class="panel-bottom">
          <text>退出登录</text>
          <uni-icons type="right" size="15"></uni-icons>
        </view>
      </view>
    </view>
  </view>
</template>

<script setup>
import { ref } from 'vue'
import { requestNickname } from '@/utils/api/user.js'
import useUserStore from '@/store/user.js'
let useStore = useUserStore()
let token = useUserStore().token
let nickname = ref('')
let avatarUrl = ref('https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0')

//退出登录
let logout = () => {
  uni.showModal({
    title: '提示',
    content: '确认退出登录吗',
    success: function (res) {
      if (res.confirm) {
        useStore.userLogout()
      }
    }
  })
}
//更改头像
const onChooseAvatar = async e => {
  const tempFilePath = e.detail.avatarUrl //上传的图片地址
  const maxSizeInBytes = 1024 * 1024 // 限制大小为1MB
  uni.getFileInfo({
    filePath: tempFilePath,
    success: res => {
      const fileSize = res.size
      if (fileSize > maxSizeInBytes) {
        //如果上传的图片大小超过1MB,进行提示
        uni.$showMsg('请上传小于1MB的图片')
        return
      }
      //图片大小符合,替换图片
      avatarUrl.value = tempFilePath
      //将更改的图片上传到服务器
      uni.uploadFile({
        url: 'http://...',   //后端接口url
        filePath: avatarUrl.value,
        name: 'file',
        header: {
          Authorization: 'Bearer ' + token  // 将 token 添加到请求的 header 中
        },
        success(res) {
          let fileRes = JSON.parse(res.data)
            uni.$showMsg(fileRes.message)

        }
      })
    }
  })
}

//获取微信昵称
const bindblur = async e => {
  const newNickname = (nickname.value = e.detail.value)
  //将更改的昵称上传给接口
  let res = await requestNickname({ newNickname })
    uni.$showMsg(res.data.message)

}
</script>

<style lang="scss">
.my-user-info {
  height: 100vh;
  background-color: #f4f4f4;
  .top-box {
    height: 240rpx;
    background-color: #0aa671;
    display: flex;
    flex-direction: column;
    align-items: center;
    .avatar {
      width: 100rpx;
      height: 100rpx;
      border-radius: 50rpx;
      border: 2rpx solid white;
      box-shadow: 0 1rpx 5rpx black;
      padding: 0;
      .avatar-img {
        width: 100%;
        height: 100%;
      }
    }
    .nickname {
      color: white;
      margin-top: 20rpx;
      text-align: center;
      font-size: 30rpx;
      font-weight: bold;
    }
  }
}
.panel-list {
  padding: 0 20rpx;
  position: relative;
  top: -40rpx;

  .panel {
    background-color: white;
    border-radius: 15rpx;
    margin-bottom: 20rpx;

    .panel-bottom {
      display: flex;
      justify-content: space-between;
      padding: 35rpx;
      font-size: 25rpx;
    }
  }
}
</style>

说明:消息弹窗 uni.$showMsg 是封装的 uni.showToast(OBJECT) 显示消息提示框。代码中提到的 uni.$showMsg 可直接用 uni.showToast(OBJECT) 代替   uni.showToast(OBJECT) | uni-app官网

 最后:👏👏😊😊😊👍👍 

uniapp 小程序授权登录,获取用户头像昵称等信息
01-26
uniapp 小程序授权登录,获取用户头像昵称等信息,代码已经封装好,下载就能用
Uniapp微信小程序时,如何获取用户头像昵称使用微信用户信息登录?
qq_53857666的博客
11-10 1689
获取微信用户头像昵称
uniapp开发微信小程序获取用户头像昵称和手机号一键登录(含头像持久化)
最新发布
qq_43548590的博客
09-07 442
效果如图: 最近因为做微信小程序的授权登录找了很多办法,也试了很多次,我这个人又懒,想要又简便、又能一次性拿全图片、昵称、手机号的方法,最好是那种不用写样式,就和那些app的漂亮登录页面一样。但很无奈,没有。 所以我也懒得写太复杂的,但这个写法呢,最基本的也都拿得到。 获取用户信息 原本呢通过uni.getUserInfo可以拿到用户信息,但这个方法已经被废弃了,取而代之的是uni.getUserProfile,但这个方法也很无语只会给你返回一个空白头像,然后昵称是微信用户,就没什么用。 最后还是采用的
uniapp开发微信小程序获取头像(使用头像昵称填写能力)
weixin_62639453的博客
08-08 860
如果使用老版一点的弹起授权框进行授权获取头像昵称的话,会由于基础库版本问题,显示不了,并且这个接口存在调整问题,不是很好搞!目前,我暂时采用这种方式,并且这个方式在真机调试中可以正常使用,所以我就先采用了这种方式。
uniapp微信小程序最新登录获取头像昵称
热门推荐
wbb1126的博客
05-23 1万+
由于微信官方wx.getUserProfile 接口的回收,以后不能通过wx.getUserProfile来返回用户信息,只能自己手动获取用户头像昵称的信息。接下来就是设置昵称
2024最新uniapp_微信小程序_微信授权登录获取微信头像和微信昵称
apple_70049717的博客
04-18 1747
这样就可以了,拿到值传给后端就可以了。
uniapp 小程序授权登录 获取微信头像昵称
qq_61869009的博客
05-17 1673
以前小程序通过uni.getUserInfo可以直接拿到微信用户头像昵称,不过现在更改了。
uniapp获取微信头像昵称的最新方法!!!
Geng_____的博客
02-17 4562
我使用的方法是通过wx.uploadFile将将临时文件下载到缓存。,当用户在此input进行输入时,键盘上方会展示微信昵称。犹豫通过获取到的微信头像是一个临时链接,无法直接进行保存。,当用户选择需要使用的头像之后,可以通过。事件回调获取头像信息的临时路径。
uniapp微信小程序——微信授权登录并获得头像
Lyy_ID的博客
08-01 1553
在做微信小程序时,不可避免需要调取用户的身份,那么就要用到微信官方的授权码去换用户信息。用户点击登录——同意微信授权——通过uni.getUserProfile获得用户的code——将code传递给后端,后端携带code请求微信官方接口获得用户信息返回。
微信小程序如何获取用户头像昵称
10-16
微信小程序获取用户头像昵称小程序开发中的常见需求,它主要涉及到微信小程序的前端页面与后端API的交互。具体的知识点包括: 1. 微信小程序基础框架介绍 首先,了解微信小程序的基础框架是非常重要的。微信小...
2023年|uniapp 微信小程序获取头像昵称又一次变动
前端程序员、项目经理、人工智能博主
10-31 4835
这一次仍然是getUserProfile() API,不知道官方为啥纠结这个问题。下面看看官方的说法,看完后不知道有没有人跟我一样是不是觉得他们官方程序员没活干闲着蛋疼。微信官方公告:https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01总结:getUserProfile()以后获取的是灰色头像和微信用户昵称
微信小程序(总结二):uniapp开发,获取微信用户头像昵称(最新)
qq_45796592的博客
02-02 3280
微信小程序获取微信用户头像昵称
uniapp获取用户昵称头像
Zhou_siyue的博客
04-14 4332
在 之前的uniapp版本中,获取用户信息采用的是getuserinfo的方法,但是由于近期uniapp的api更新,getuerinfo已经无法通过弹出授权框来授权获取真实的用户信息,只能获取到默认的用户信息(微信用户),造成了诸多困扰。 这里提供了一个解决的办法:使用uni.getUserProfile方法,可以弹出授权狂,获取用户信息,演示过程代码如下: <button @click="getUserInfo()">获取权限</button&gt......
uniapp获取微信头像昵称
吕小威的博客
09-10 7697
<view class="userInformation"> <!-- 用户自定义头像 --> <view class="userPortrait"> <image :src="yonghuwx.avatarUrl" mode="widthFix"></image> </view> <view class="userLook" > <!-- 用户自定义名字 --> <
uniapp开发微信小程序——微信登录,获取头像昵称
m0_58135258的博客
07-28 2247
uniapp开发微信小程序——微信登录,获取头像昵称
uniapp小程序最新获取用户头像昵称操作
m0_61950846的博客
04-23 1928
小程序最新获取头像昵称,和小程序不支持网络资源文件修改的bug
uniapp登录获取微信头像昵称头像昵称填写能力方法)
m0_62626838的博客
08-01 446
3、但这里有一个bug,uniapp官方暂时未解决,当用户取消选择头像时会报渲染层错误。(但不影响功能实现)2、使用uniapp头像昵称填写能力功能。1、微信头像获取效果图。
uniapp-小程序获取微信用户名称和头像
一名运维开发工程师的日常记录
06-30 4268
uniapp 开发小程序过程中,如何获取微信用户昵称头像信息,这个uniapp已经集成,通过getUserInfo即可获取到。
ffmpeg 让视频与音频都降低0.5倍的播放速度
05-31
你可以使用 ffmpeg 命令行工具来实现将视频和音频都降低播放速度的操作。具体的命令如下: ``` ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=2*PTS[v];[0:a]atempo=0.5[a]" -map "[v]" -map "[a]" output.mp4 ``` 其中,`input.mp4` 是输入视频文件名,`output.mp4` 是输出视频文件名。`setpts=2*PTS` 表示将视频的播放速度降低为原来的一半,`atempo=0.5` 表示将音频的播放速度降低为原来的一半。`-map` 参数用于指定输出的视频和音频流。 执行该命令后,即可得到播放速度降低为原来一半的视频。
写文章

热门文章

  • 解决:Component name “index“ should always be multi-word 18107
  • 解决:[Vue warn]: Error in render: “TypeError: Cannot read properties of undefined (reading ‘matched‘)“ 16105
  • uniapp 微信小程序 获取用户头像和昵称 13132
  • uniapp 网络请求封装(uni.request 与 uView-Plus) 12631
  • uniapp 实现不同用户展示不同的tabbar(底部导航栏) 12387

分类专栏

  • 鸿蒙 HarmonyOS 33篇
  • 土拨鼠充电系统 1篇
  • git+svn 4篇
  • 微信小程序 22篇
  • JS 5篇
  • ES6 4篇
  • Vue 29篇
  • H5+CSS 2篇
  • node.js 1篇

最新评论

  • 解决:微信小程序预览时代码包太大

    努力做大佬的小佬的徒弟: 我在微信开发者工具看到项目设置里面代码包总大小(使用分包)是30M,这个是不是就是太大了

  • 微信小程序 实现登录流程

    C_心欲无痕: 后台返回的token的有效期一般设置为多长时间,总不能一直有效吧;token过期之后需要重新走wx.login方法吧

  • uniapp 网络请求封装(uni.request 与 uView-Plus)

    奔跑的露西: 互相学习

  • uniapp 网络请求封装(uni.request 与 uView-Plus)

    IT小鸟.: 很棒很棒

  • 【开源-鸿蒙土拨鼠充电系统】鸿蒙 HarmonyOS 4.0 App+微信小程序+云平台

    奔跑的露西: 多写多练就行了,你也很厉害,加油。 方便的话也帮我点个star哦,感谢表情包https://github.com/cheinlu/HarmonyOS-groundhog-charging-system

最新文章

  • 【HarmonyOS NEXT 踩坑记录】error: failed to install bundle. code:9568258 error: install releaseType not
  • 【HarmonyOS NEXT 踩坑记录】Install Failed: error: failed to install bundle. error: no signature file.
  • 【HarmonyOS NEXT】组件嵌套滚动:nestedScroll
2024
10月 1篇
09月 7篇
08月 2篇
07月 2篇
06月 3篇
04月 2篇
03月 13篇
02月 10篇
01月 8篇
2023年53篇
2022年2篇

目录

目录

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司安徽合肥网站排名优化公司荔波网站关键词优化中山网站优化推广方案书邵阳网站怎么优化网站标题优化在线宁夏网站优化哪家值得信赖查看网站优化河南知名网站优化首选淄博沂源电子商务网站优化网站优化 济南惠州专业网站优化运营网站排名优化找到云速捷值得织梦网站的内部优化重庆效果好的优化推广网站博凯社区网站优化排名嵩县网站优化选哪家濮阳网站优化单价知名的seo网站优化系统辽源网站优化怎么选深圳seo网站优化怎么样湖北外包网站优化哪家好黄山齐全的网站优化吴江网站优化哪家强安阳网站关键词优化技术二七区网站优化丰台网站排名优化建设淮安网站建设和优化沈阳低价教育行业网站优化专科医院网站优化服务网站做优化心细火23星去香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化