之前做的项目需要保存用户头像,需要解决的问题有以下
1.如果使用open-data里的数据则只能用于给当前用户展示自己的头像,无法用于评论区给全部用户显示头像
2.如果每次进入小程序使用wx.getUserInfo()获取头像后再更新数据,如果你的评论内容多了,评论里保存的头像链接每次都更新将会拖慢运行速度,而且操作起来非常麻烦
3.评论里的用户头像需要不会过期可以一直显示,即使用户换了头像也仍然有效
4.如果不获取微信头像,用户进入小程序还需要提交一个图片做完头像非常繁琐

我的解决办法是在用户第一进入小程序的时候使用wx.getUserInfo()获取用户头像数据,然后将用户头像的url转换为图片格式保存在服务器,再将服务器的图片url保存再用户数据里,这样即使用户换了头像图片链接也不会失效,再提供更换头像功能就解决了。下面上代码

getUserInfo(e){var that =thisthis.setData({getinfo: false})wx.getSetting({success:function(res){if(res.authSetting['scope.userInfo']){wx.getUserInfo({success:function(res2){var avatarUrl = res2.userInfo.avatarUrlwx.getImageInfo({src: avatarUrl,success:function(res3){var filePath = res3.pathvar cloudPath = 'avatar/' + new Date().getTime() + that.data.openid + res3.path.match(/\.[^.]+?$/)[0]wx.cloud.uploadFile({cloudPath,filePath,complete: res4 => {db.collection('user').doc(that.data.openid).update({data:{avatarUrl:res4.fileID}}).then(res=>{wx.redirectTo({url: '../login/login',})})} })}})}})}}})},

这里的代码写的很不好,有回调地狱,但是当时的确为了解决这个问题想了很久,就很急着实现了,但是大概的方法就是这样,我使用的是微信小程序云开发。我在用户第一次进入小程序的时候弹出一个授权框,如果授权了就获得头像,如果没有拒绝了就无法打开个人页面,如果打开个人页面会弹出授权框,拒绝就返回首页,接受就能浏览。

如果还有什么好的解决方法希望大家在评论区告诉我,如果这个思路可以解决你的问题不妨给我点个赞吧!

微信小程序头像保存方法,适合评论类保存,防止头像链接失效方法(已解决)相关推荐

  1. 微信小程序云开发数据库update函数更新不了数据的问题(已解决)

    最近在做一个毕业项目的小程序,数据库是微信小程序自带的,在更新数据时发现一只更新不了,查了好久说是权限问题叫我使用云函数,我也是用了但是没有用.update函数调用成功单返回的却是0行记录被更新.但我 ...

  2. 微信小程序-仿朋友圈点赞评论操作面板

    目录 微信小程序-仿朋友圈点赞评论操作面板 一.效果 二.实现 1.wxml实现 2.js实现 3.wxss实现 三.记录 1.dataset使用 微信小程序-仿朋友圈点赞评论操作面板 一.效果 二. ...

  3. linux带头像通讯录软件,这款微信小程序,拯救空白了很久的通讯录头像!

    原标题:这款微信小程序,拯救空白了很久的通讯录头像! 一直以来,智能手机用户都被一个不大不小的问题困惑着--无论 iOS 还是 Android 平台,手机通讯录早已经支持了自定义好友头像的功能.然而由 ...

  4. 微信小程序利用云开发实现评论功能

    微信小程序利用云开发实现评论功能 如果喜欢可以给我一个关注. 一.微信小程序,评论功能的实现. 首先我们先布局,一个文章或者是商品,底下是评论, <!-- 商品详情 --> <vie ...

  5. 微信小程序APP(商超营销类)经验总结

    项目介绍 这是一款主打门店营销的小程序.包括首页.门店.营销.个人设置.登录.数据统计展示.营销设置等. 本来要独立完成整个项目,包括前后端一套的,有些意外因素,项目临时收尾(说明:只完成了前端的部分 ...

  6. 基于微信小程序的相关管理系统设计与实现开题报告的思路及方法

    今天主要谈一下计算机科学相关专业同学的选题的思路及方法. 毕业设计选题选没选好就像各位走出校园踏进社会的一道坎,跨过这道坎是很关键的,而有些同学却犯了难,把本应该简单的问题复杂化了.为什么这样讲呢?之 ...

  7. EAUML日拱一卒-微信小程序实战:位置闹铃 (17)-保存和取出设定信息

    设定了监控点之后,小程序会取得最新位置,判断各个监控点的到达,离开情况并播放提示音.很多情况下,用户会希望这些信息可以保存起来以便将来使用. 这就是今天的主题:在小程序中保存设定信息. API 位置闹 ...

  8. 微信小程序第四篇:生成图片并保存到手机相册

    系列文章传送门: 微信小程序第一篇:自定义组件详解 微信小程序第二篇:七种主流通信方法详解 微信小程序第三篇:获取页面节点信息 目录 一.封装分享组件 二.定义用户授权方法 三.调用流程 首先我们看一 ...

  9. 【微信小程序】实现手写电子签名并保存为图片功能

    需求概述: 微信小程序的一个功能,类似于画板,用于电子签名,要求有一键清空画板和保存功能. 实现思路: 微信开发文档中的Canvas组件 微信画布API中的 wx.createCanvasContex ...

最新文章

  1. 使用WinPcap和libpcap类库读写pcap文件(001)开发环境配置
  2. MySQL优化篇:锁机制
  3. matlab索引程序,Matlab索引到逻辑索引
  4. thinkphp学习笔记7—多层MVC
  5. 线程知识-ThreadLocal使用详解
  6. [SlickEdit] SlickEdit支持目录别名FTP控件更新
  7. 用户界面的一些好的设计理念
  8. excel去除html格式化,带有标签的HTML文本,用于在Excel单元格中格式化文本
  9. 使用httpclient发送get请求
  10. 10参数_荣耀V40屏幕参数:10亿色视网膜级超感屏
  11. 相机姿态估计(五)--DLS
  12. Vue之.sync 修饰符详解
  13. Python走心的42个代码例子
  14. 不良事件总结怎么写_年度不良事件总结
  15. 第六次作业——潘芊睿
  16. 企业网站用什么服务器操作系统?
  17. 详解TP-Link路由器设置(图解)
  18. mmorpg小地图系统制作
  19. Linux——详解共享内存shared memory
  20. 《从零开始:机器学习的数学原理和算法实践》chap1

热门文章

  1. 上传到服务器的文件没了,ftp上传到服务器没有文件
  2. 知识付费平台网课系统。知识付费平台搭建,具体应该如何去做
  3. 《带你游校园》教学设计
  4. Altium 倒入Logo的最新方法
  5. 一个简单易用的编程式绘图工具mermaid
  6. 关于OBS显示器捕获黑屏问题的解决办法之一
  7. UE风格化Day3-maya建模中的对称问题
  8. phpstorm编辑器中没有tools菜单的解决办法
  9. android stdio中简单的ui页面设计
  10. Linux 限制通过SSH登录