当前位置:   article > 正文

[uni-app] 微信小程序 如何修改替换头像_uniapp修改头像

uniapp修改头像

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

技术:

前端应用框架为uni-app

UI框架为uView


 思考:

1. 头像点击事件 click

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

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

  1. <u-cell title="头像" :border="false" isLink>
  2. <view slot="icon">
  3. <u-icon name="photo" color="#eac47f"></u-icon>
  4. </view>
  5. <view slot="value">
  6. <u-avatar :src="userPhoto" shape="circle" @click="changeUserPhoto"></u-avatar>
  7. </view>
  8. </u-cell>

js: 

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

以上完成了头像的修改

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/287074
推荐阅读