如下图所示,微信小程序中涉及到修改头像的交互

技术:

前端应用框架为uni-app

UI框架为uView


思考:

1. 头像点击事件 click

2.从本地相册选择图片或使用相机拍照uni.chooseImage(OBJECT),方法执行成功后根据success中返回的图片的本地文件路径列表 tempFilePaths,做操作

3.上传图片uni.uploadFile(OBJECT),通过上传接口拿到图片的路径或者跟图片有关的值,再根据这个值调取后端接口拿到base64字符串 【最后还是要看后端开发要怎么设计了,说白了都是从接口里拿到想要的值。。】

<u-cell title="头像" :border="false" isLink><view slot="icon"><u-icon name="photo" color="#eac47f"></u-icon></view><view slot="value"><u-avatar :src="userPhoto" shape="circle" @click="changeUserPhoto"></u-avatar></view>
</u-cell>

js:

// 点击头像触发click事件 changeUserPhotochangeUserPhoto() {let _this = this;uni.chooseImage({count: 1, //默认9sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有sourceType: ["album", "camera"], //从相册选择或者打开相机success: function (res) {if (res.tempFiles[0].size > 2 * 1024 * 1024) {_this.$refs.uToast.show({type: "error",message: "图片大小不得超过2MB"});} else {uni.uploadFile({url: `${Config.baseURL}jz-fileserver/api/v1/attachs?relationType=profile`,filePath: res.tempFilePaths[0],name: "file",success: uploadFileRes => {// 根据返回的uploadFileRes.data做操作,往下逻辑要怎么写关键还是要看后端如何处理。就当前逻辑该上传接口返回的是图片需要的一个ID,// 该方法是通过将uploadFileRes.data中的某个值传参给后端,后端返回ArrayBuffer对象,最后在专程Base64字符串_this.showPhoto(uploadFileRes.data)}});}}});},// 转base64,将ArrayBuffer对象,转成Base64字符串,最后赋值
showPhoto(data) {this.$http.showPhoto({id: JSON.parse(data.data.id),size: "300"}).then(res => {const arrayBuffer = new Uint8Array(res.data);this.userPhoto = `data:image/jpeg;base64,${uni.arrayBufferToBase64(arrayBuffer)}`;});}}

以上完成了头像的修改

在写这块的业务处理逻辑时,个人时感觉某些接口还是有多余设计成分在里面的,此时还是要多根跟后端开发好好商量设计下如何解决才更高效!

[uni-app] 微信小程序 如何修改替换头像相关推荐

  1. uni开发微信小程序解决全局分享分销问题

    uni开发微信小程序解决全局分享分销问题 1. 需求 1.小程序内每个页面都要打开胶囊分享按钮并实现分销 2.分享功能应该是在用户登录之后才予以打开 3.不想做在每个页面都写分享钩子的傻逼操作 2.实 ...

  2. 微信小程序动态修改头部title

    微信小程序动态修改头部title 1,正常我们设置title的名字是这么设置的 {"navigationBarTitleText": "详情", } 2.在js ...

  3. 微信小程序动态修改样式

    前言 微信小程序动态修改样式:循环数组显示到页面,点击单独的按钮变换单独样式 一.wxml <view class="fb_tips"wx:for="{{arr11 ...

  4. php取微信名字和头像,微信小程序如何获取用户头像和昵称

    本文介绍了微信小程序如何获取用户头像和昵称,分享给大家,具体如下: 代码user.wxml: {{userInfo.nickName}} user.js //sort.js //獲取應用實例 var ...

  5. 微信小程序——读取显示用户头像昵称

    微信小程序--读取显示用户头像昵称 代码仓库地址 一.实验目标 1.学习使用快速启动模板创建小程序的方法: 2.学习不使用模板手动创建小程序的方法. 二.实验步骤 2.1 自动生成小程序 完成开发者注 ...

  6. 微信小程序获取用户信息-头像、昵称......

    微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 目录 微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 1.wx.getUserProfile文档 2.代码演示 3.演示过程(图示) ...

  7. 一款DIY微头像助手的微信小程序,可以给头像加入各种个性挂件(圣诞帽,中国年,小红旗,口罩)的小程序工具

    微头像助手 demo请于微信小程序搜索:微头像助手 一款DIY微头像助手,可以给头像加上各种挂件的微信小程序! 部署说明: 直接上转即可使用 本项目从技术上是支持所有平台(H5,APP,小程序)的,但 ...

  8. 微信小程序:自动采集头像大全微信小程序源码

    这是一款以头像为主的一款微信小程序源码 该小程序内包含了各种分类,各种样式都有 可以说是目前最全的一款头像小程序源码 五大分类情侣,女生,男生,卡通,风景 每大分类下面都有N个小分类,每个小分类下面有 ...

  9. 微信小程序:流量主头像组合微信小程序

    这是一个头像类型的小程序源码 支持多种流量主 比如激励视频,Banner,视频,插屏,原生模板等 小程序内包含多种头像非类,都是自动采集 比如男生头像,男声头像,动漫头像等等 另外该小程序还支持姓氏头 ...

最新文章

  1. awk linux 获取端口号_Linux提权后获取敏感信息命令
  2. 浅谈话题模型:LSA、PLSA、LDA
  3. BZOJ3488 : [ONTAK2010]Highways
  4. 基础知识:元组、字典、集合
  5. JAVA基础实例(三)--排序
  6. PLSQL 申明和游标
  7. GitHub in vs2010、vs2013
  8. ubuntu16.04 虚拟机装机后常用操作
  9. mysql十亿_Mysql:表中有数十亿条记录
  10. GPRS,GSM,WAP三者有什么区别(ZT)
  11. LinuxCentOS安装破解版Navicat
  12. pycharm安装open3d的方法
  13. C 实现黑客帝国数字雨
  14. 代码随想录第十三天 LeetCode 239、347(队列)
  15. python序列类型映射_python学习笔记(基础:变量,序列,映射) | 学步园
  16. mysql时区重启后失效_mysql时区问题
  17. 移动电影院为小众精品影片提供更广大的生存空间
  18. 开源硬件童芯派了解一下?一个真创客聊聊开源硬件
  19. JAVA采用S7通信协议访问西门子PLC
  20. python音乐的数据抓取与分析_python抓取网易云音乐热评做词图数据分析

热门文章

  1. 中国人工智能城市排名榜公布,北京、杭州、深圳居前
  2. 控件获取图像可从几方面取得?_基于图像特征与布局刻画的移动测试脚本跨平台录制回放...
  3. 【USB】macOS usb内核驱动开发入门
  4. win10恢复经典开始菜单_没有蜘蛛纸牌的日子怎么过?带你找回Win10自带的游戏...
  5. python小游戏《孙悟空大战白骨精》 (循环的练习)
  6. php日期转微秒,使用PHP生成独特的微秒级
  7. 【精品推荐】程序员必定会爱上的十款软件:不用就太浪费了@^@
  8. 程序员应该如何写好自己的简历
  9. 数学实验matlab 韩明,数学实验(MATLAB版)[韩明,王家宝,李林 编著] 2012年版
  10. 制作coco数据集,并在mmdetection上实验