微信小程序登录获取不到头像和昵称主要原因是:小程序wx.getUserProfile接口被收回!

大家可以按照文档操作↓

PS:

针对小程序wx.getUserProfile接口将被收回后做出的授权调整

小程序文档中提出的调整说明


对于此次变化,现将小程序授权方式做以调整

添加判断当前基础库是否支持头像昵称填写能力
在根目录App.vue中加入判断基础库是否大于2.21.2版本(大于此版本支持头像/昵称填写能力)

// #ifdef MPconst version = uni.getSystemInfoSync().SDKVersionif (Routine.compareVersion(version, '2.21.2') >= 0) {that.$Cache.set('MP_VERSION_ISNEW', true)} else {that.$Cache.set('MP_VERSION_ISNEW', false)}
// #endif

Copy
2.修改/pages/users/wechat_login.vue文件

(1) 在data中加入基础库判断,决定授权逻辑

mp_is_new: this.$Cache.get('MP_VERSION_ISNEW') || false

Copy
(2)dom中新增逻辑判断

(3) methods中加入方法userLogin

// 小程序 22.11.8日删除getUserProfile 接口获取用户昵称头像userLogin() {Routine.getCode().then(code => {uni.showLoading({title: '正在登录中'});authLogin({code,spread_spid: app.globalData.spid,spread_code: app.globalData.code}).then(res => {if (res.data.key !== undefined && res.data.key) {uni.hideLoading();this.authKey = res.data.key;this.isPhoneBox = true;} else {uni.hideLoading();let time = res.data.expires_time - this.$Cache.time();this.$store.commit('LOGIN', {token: res.data.token,time: time});this.getUserInfo()}})}).catch(err => {console.log(err)});},

3.新增用户头像/昵称获取能力

(1)调整pages/users/user_info.vue文件
data中添加

mp_is_new: this.$Cache.get('MP_VERSION_ISNEW') || false

(2)调整dom中

(3)methods中加入方法

onChooseAvatar(e) {const { avatarUrl } = e.detailthis.$util.uploadImgs('upload/image', avatarUrl, (res) => {this.userInfo.avatar = res.data.url}, (err) => {console.log(err)})
},

这里有一个公共方法uploadImgs需要在/utils/util.js中添加

uploadImgs(uploadUrl, filePath, successCallback, errorCallback) {let that = this;uni.uploadFile({url: HTTP_REQUEST_URL + '/api/' + uploadUrl,filePath: filePath,fileType: 'image',name: 'pics',formData: {'filename': 'pics'},header: {// #ifdef MP"Content-Type": "multipart/form-data",// #endif[TOKENNAME]: 'Bearer ' + store.state.app.token},success: (res) => {uni.hideLoading();if (res.statusCode == 403) {that.Tips({title: res.data});} else if (res.statusCode == 413) {that.Tips({title: '上传图片失败,请重新上传小尺寸图片'});} else {let data = res.data ? JSON.parse(res.data) : {};if (data.status == 200) {successCallback && successCallback(data)} else {errorCallback && errorCallback(data);that.Tips({title: data.msg});}}},fail: (err) => {uni.hideLoading();that.Tips({title: '上传图片失败'});}})
},

微信小程序登录获取不到头像和昵称解决办法!相关推荐

  1. uniapp微信小程序新版本获取用户的头像和昵称,手机号

    新版本微信小程序通过getUserInfo获取到用户的头像是灰色,昵称显示为微信用户,这是微信版本更新了,现在需要用getUserProfile来获取用户的头像和昵称,并且只能页面产生点击事件(例如 ...

  2. 微信小程序登录获取Token以及微信支付

    微信小程序登录获取Token 在调用登录接口api之前,要先获取以下五个参数 后四个参数获取:通过为button按钮添加 open-type="getUserInfo" (固定写法 ...

  3. 微信小程序 - 登录获取openid和用户信息(适配getUserProfile)

    GitHub Demo 地址: jh-weapp-demo 实现一些常用效果.封装通用组件和工具类 小程序码 微信小程序中如果需要使用微信的用户信息建立自己的用户体系,需拿到唯一标识openid,然后 ...

  4. Java实现微信小程序登录 获取用户信息

    小程序比公众号授权登录 更加简单 其实没什么是后台需要处理的 前端传过来一个code 我们保存以下通过code获取过来的openid就可以 其他的用户信息 前端小程序那边可以获取. 首先既然是小程序登 ...

  5. 企业微信小程序_获取准确定位的方法及解决定位不准确的问题

    文章目录 一.经验分享 1. 微信api现状 2. 解决方案 3. 适用场景 二.小程序集成腾讯定位服务 2.1. 注册腾讯开发者 2.2. 创建应用 2.3. 添加key 2.4. 下载sdk 2. ...

  6. 微信小程序分享朋友圈的实现思路与解决办法

    转自:https://www.cnblogs.com/till-the-end/p/8470557.html 简介 截止我写这篇文章的时候,小程序应该是还没有能够直接分享到朋友圈的api,转发给朋友和 ...

  7. 微信小程序input弹出键盘挡住文字的解决办法

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 解决思路:阻止键盘弹起时,自动上推页面.输入框获取焦点的时候让页面绝对定位,相对底部 100 像素.失去焦点的 ...

  8. 微信小程序image图无法加载出来的解决办法(亲测有效)

    在微信小程序中,第一次加载页面时图片(线上图)加载不出来/图片灰色背景显示,这个时候该如何解决这个问题呢?请带着问题查看这篇博客,希望对您有所帮助(点赞skr) 看官方文档? 自行解决? 写在前面(初 ...

  9. 微信小程序中图片高度被压扁的解决办法

    微信小程序开发中使用image标签展示的长图因为太长,就会被压扁变形,让人看起来很难看,那如何才能让图片的高度自适应呢?使用css的height:auto也没办法实现. 翻看了小程序社区的问答,发现了 ...

最新文章

  1. 使用angularJs ng-repeat做表格合并行效果
  2. SQLServer中利用NTILE函数对数据进行分组的一点使用
  3. iptables白名单配置
  4. 高等数学:第十章 曲线积分与曲面积分(3)高斯共识、通量、散度、斯托克斯共识、环流量、旋度
  5. 确认了!西湖大学将开始招收本科生:首批五个专业
  6. python 设置横坐标刻度_python 双误差棒(上下误差棒)主刻度 副刻度
  7. No resource found that matches the given name 'android:Widget.Material.A解决方案
  8. layui复选框:被js操作checked切换并显示状态(含案例、代码)
  9. 收录网zblog主题导航模板
  10. Java新特性之Nashorn的实例详解
  11. open() api
  12. 如何禁止IIS缓存静态文件(png,js,html等)(转)
  13. 如何提升数据安全治理能力
  14. 「ZJOI2019」麻将
  15. 127.0.0.1 zxt.php_windows 10 下docker布置nginx+php环境,用宿主WEB目录负载均衡
  16. 完美可用-DirectX修复工具增强版DirectX Repair
  17. pycharm如何设置官方中文?pycharm如何汉化?pycharm终于支持官中了!!!
  18. 四十七、Fluent近壁面处理
  19. 证明:无理数乘以非零的有理数仍然是无理数
  20. Java——io项目(快递分拣系统)

热门文章

  1. linux 异星工厂服务器,Factorio服务器部署指南
  2. 使用Redis缓存Shiro授权认证信息,搭建集群权限系统
  3. xadmin开发后台管理系统常见问题
  4. VTK学习笔记(九)vtkDiskSource
  5. draw.io 开源矢量图作图神器的骚操作
  6. CSS 过度中ease与ease-in-out的区别(ease曲线)
  7. 商鼎云|为Chromium添加星际文件系统协议支持
  8. BurpSuite Proxy 给代理设置上层代理
  9. 笔记--云课堂-李菲菲DL-01
  10. 前端使用js实现Rsa的加密和解密