微信小程序一键获取用户头像、昵称等基本信息

  • 微信小程序一键获取用户头像、昵称等基本信息
    • 需求描述
    • 功能实现
      • 1.操作流程
      • 2.目录结构
      • 3.关键代码
      • 4.效果演示

微信小程序一键获取用户头像、昵称等基本信息

系统:Win10
微信开发工具:Stable v1.03.2005140

根据官方发布更新说明:小程序登录、用户信息相关接口调整说明
对getUserInfo的功能进行了调整,可能已经无法实现下面的效果,请注意!!!

需求描述

在一次开发微信小程序的过程中,需要获取到使用小程序的用户头像和用户昵称,而且只需要一次授权,后面再使用就自动获取用户的信息

功能实现

1.操作流程

  • 用户登录时,使用 wx.getSetting 来查询用户是否授权过

    • 如用户首次登录,则使用 button open-type=‘getUserInfo’ 来调起授权

      • 若未授权或拒绝授权,则一直显示授权按钮
      • 若获得授权,则使用 wx.getUserInfo 来获取用户的头像、昵称等信息
    • 若用户是再次登录,则通过成功返回的 scope.userInfo 来调用用户的头像、昵称等信息

2.目录结构

这里我新建了一段代码片段来测试

3.关键代码

记得在 app.js 下创建一个全局变量 userInfo

App({globalData: {userInfo: null},onLaunch: function () {}
})

index/index.js

const app = getApp()
var that
Page({/* 页面初始数据 */data: {userInfo: {},hidden_actionSheet: true,},/*** 页面加载*/onLoad: function () {that = thisthat.isAuthorize().then(res => { //用户已经授权获取基本信息wx.getUserInfo({success: res => {app.globalData.userInfo = res.userInfothat.setData({userInfo: app.globalData.userInfo,})}})}).catch(res => { //用户没有授权获取基本信息that.setData({hidden_actionSheet: false,})})},/* 是否授权获取基本信息,已经授权返回到then,没有授权返回到catch */isAuthorize() {return new Promise((resolve, reject) => {// 获取用户授权状态wx.getSetting({success: res => {if (res.authSetting['scope.userInfo']) {console.log("全局--用户已经授权")resolve()} else {console.log("全局--用户还没有授权获取基本信息")reject()}}})})},// 底下的取消按钮actionSheetChange: function (e) {wx.showModal({showCancel: false,content: '部分功能需要登录才能使用',})},// 获取用户信息:拒绝还是接受都会进入这里allowGetUserInfo: function (e) {if (e.detail.rawData) { // 权限选择了:允许that.setData({userInfo: app.globalData.userInfo,})// 获取用户信息wx.getUserInfo({success: res => {app.globalData.userInfo = res.userInfothat.setData({userInfo: app.globalData.userInfo,hidden_actionSheet: true, // 隐藏actionSheet})}})} else { // 权限选择了:拒绝wx.showModal({showCancel: false,content: '部分功能需要登录才能使用',})}},
})

index/index.wxml

<view class="container"><view class="userinfo"><!-- hasUserInfo为false表示没有获取到用户信息,就显示获取头像昵称的按钮 --><action-sheet hidden="{{hidden_actionSheet}}" bindchange="actionSheetChange"><button class="bt_login" open-type="getUserInfo" bindgetuserinfo="allowGetUserInfo"> 微信授权登录 </button><!-- 取消按钮可以不用 --><action-sheet-cancel class='cancel'>取消</action-sheet-cancel></action-sheet><!-- 已获取用户信息,显示头像和昵称 --><block hidden="{{!hidden_actionSheet}}"><image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image><text class="userinfo-nickname">{{userInfo.nickName}}</text></block></view>
</view>

index/index.wxss

page {width: 100%;height: 100%;
}.container {width: 100%;height: 100%;
}.userinfo {display: flex;flex-direction: column;align-items: center;
}.userinfo-avatar {width: 128rpx;height: 128rpx;margin: 20rpx;border-radius: 50%;
}.bt_login {width: 200rpx;height: 70rpx;color: #6699FF;border: 3rpx solid #6699FF;border-radius: 80rpx;font-size: 35rpx;margin: 20rpx 0;display: flex;justify-content: center;align-items: center;
}.cancel {font-size: 35rpx;
}.userinfo-nickname {color: #aaa;
}

4.效果演示

下面是测试效果图,除了头像和昵称外,还可以获取用户的国家,城市,性别,语言等信息

微信小程序一键获取用户头像、昵称等基本信息相关推荐

  1. 微信小程序如何获取用户头像昵称

    微信小程序登录用户头像昵称已经不支持支持获取,因为用户的scope.userInfo权限已经回收,可以使用昵称头像填写进行完善用户信息,按照官方推荐会显示用户在微信的头像和昵称,本文介绍一下实现方案. ...

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

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

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

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

  4. 微信小程序直接获取用户头像、昵称等(无需按钮授权)

    直接使用微信提供的组件 在页面使用获取用户头像.昵称 头像是直接返回图片需要对样式进行修改,其它数据也是直接展示 头像圆角需要加这个,否则实现不了

  5. 【微信小程序】获取用户头像和ID

    课程 中国海洋大学22夏<移动软件开发> 实验名称 实验1:第一个微信小程序 一.实验目标 1.学习使用快速启动模板创建小程序的方法: 2.学习不使用模板手动创建小程序的方法. 二.实验步 ...

  6. 关于微信小程序如何获取用户头像(保存到本地)新方法

    传统接口wx.getUserInfo的效果会弹出一个给用户的弹窗,需要用户授权,但是在使用时候会有官方log提醒你,这个方法需要升级.新方法则无需用户授权,使用方法如下: <open-data ...

  7. 【微信小程序开发】用户头像昵称获取规则调整 2022

    之前通过wx.getUserInfo获取用户的头像.昵称等信息 2021年4月调整为通过wx.getUserProfile获取用户的头像.昵称等信息 详情请看:https://developers.w ...

  8. 微信小程序无法获取用户头像和昵称,微信小程序获取昵称为微信用户,头像为灰色,请使用下面方式过去

    getUserProfile(e) { wx.getUserProfile({ desc: '使用户得到更好的体验', success: (res) => { console.log(" ...

  9. 微信小程序——最新获取用户昵称和头像的方法总结

    前段时间微信小程序对获取用户昵称和头像方法进行了更新,网上很多的文章都已经不适用了,这里简单总结一下 首先,传统接口wx.getUserInfo的效果会弹出一个给用户的弹窗,需要用户授权,经过测试传统 ...

  10. 小程序获取不到用户头像和昵称返回微信用户问题解决,即小程序授权获取用户头像规则调整的最新解决方案

    最近好多同学在学习石头哥小程序课程的时候,遇到了下面这样的问题,在小程序授权获取用户头像和昵称时,获取到的是下面这样的. 到底是什么原因导致的呢,去小程序官方文档一看,又是官方改规则了. 点进去一看, ...

最新文章

  1. 使复选框选中_勾选复选框单元格变色,自动计数,在Excel中是如何实现的?
  2. 通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 (
  3. jeewx-api-1.0.1(捷微微信接口API)版本正式发布
  4. python及numpy,pandas易混淆的点
  5. LeetCode--35. 搜索插入位置(遍历,二分法)
  6. 14、查找最接近的元素
  7. 马云放弃阿里巴巴所有权?华硕裁员上百人;扎克伯格账号被黑 | 极客头条
  8. 编译原理-LR分析技术(自己看)
  9. 蓝桥杯2016年七届C/C++省赛C组第八题-冰雹数
  10. 线性调频信号学习笔记
  11. 百度万年历API(主要获取节假日和调休工作日数据)
  12. 2016年蓝桥杯B组C/C++省赛试题-漏网之渔
  13. -XX:PretenureSizeThreshold的默认值和作用浅析
  14. 交换机和路由器的区别计算机网络,交换机和路由器的区别,教您交换机和路由器的区别...
  15. Netpod Alive网络拓扑图生成、绘制有生命的网络拓扑图工具
  16. 手机无线如何共享给台式计算机,台式电脑怎样共享网络给手机
  17. Dynamics CRM IFD部署后延长系统注销时间
  18. 多线程(1)——什么是多线程
  19. Node.js + Web Socket 打造即时聊天程序嗨聊(1)
  20. 央行数字货币研究报告:法定数字币势在必行,或先应用于票据领域

热门文章

  1. 干货:怎么提高科技成果转移转化成效?
  2. 【深度】揭穿QQ偷窥6亿用户隐私的三大阳谋
  3. 速读原著-TCP/IP(端口映射器)
  4. Angular Mock Data
  5. Go Web框架 Gin路由(一)
  6. 便利店收银系统多少钱一套
  7. java sao_JavaScript 的一些SAO操作
  8. 用于SAO Utils桌面网页挂件的Live2D看板娘
  9. win10 android10之后高通芯片 adb和fastboot驱动无法识别问题
  10. 【重识云原生】第六章容器6.1.3节——Docker常用命令