小程序获取用户头像和昵称

这篇具有很好参考价值的文章主要介绍了小程序获取用户头像和昵称。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇参考B站视频小程序实战项目-食疗坊_哔哩哔哩_bilibili

目录

方法一

方法二,本例以方法二展示

1.编写contact页面

2.展示效果

3.优化

编写app.js 

编写 contact页面

展示效果:


方法一

(1)wxml

<!--pages/contact/contact.wxml-->
获取用户头像和昵称 -->
<!-- <view class="userInfo">
  <view class="img"><open-data class="logo" type="userAvatarUrl"></open-data></view>
  <open-data type="userNickName"></open-data>
</view>

 

方法二:本例以方法二展示,通过全局变量globalData进行读取

1.编写contact页面

(1)wxml

<!--pages/contact/contact.wxml-->
<view class="userInfo">
  <button wx:if='{{isShow}}' open-type="getUserInfo" bindgetuserinfo="getUserInfo">获取头像和昵称</button>
  <view wx:else>
    <view class='img'><image class="logo" src="{{userInfo.avatarUrl}}" alt=""/></view>
    <view>{{userInfo.nickName}}</view>
  </view>
</view>

(2)js

// pages/contact/contact.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isShow: true,   // 显示按钮
    userInfo: '',   // 存储用户信息
  },
  // 1.点击按钮,授权头像和昵称
  getUserInfo(e) {
    console.log(e);
    this.setData({
      userInfo : e.detail.userInfo,
      isShow : false
    })
    
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

(3)wxss

/* pages/contact/contact.wxss */
page {
  background: #f5f5f5;
}

.userInfo {
  padding: 10px;
  background: #fff;
  display: flex;
  align-items: center;
}
.img .logo {
  width: 180rpx;
  height: 180rpx;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid #ccc8c8;
  display: block;
}

2.展示效果

(1)编译之后,页面展示如下,

小程序获取用户头像和昵称

 (2)点击“获取头像和昵称”按钮,页面展示如下,

小程序获取用户头像和昵称

问题:每次进入都需要用户进行点击“授权用户头像和昵称”按钮。

3.优化

用户点击:获取头像和昵称

  • 1.button触发按钮点击事件
  • 2.定义函数,获取e.detail获取头像的昵称
  • 3.刷新页面--再次进入还需要点击按钮。希望:之前授权了,直接获取头像和昵称
    • (1)本地存储:获取用户头像和昵称之后,把数据存储本地。
      • 缺点:数据固定了,不会更新
    • (2)重新获取:推荐。在app.js全局获取,页面共享数据
      • 获取用户之前是否以及授权过信息。如果之前已经授权过信息,那么直接获取头像和昵称;否则第一进入使,跳转到获取界面,引导用户授权。        

编写app.js 

注意:将用户信息存储到全局变量,当前页不能用。也就是说如果我直接进入当前contact页面(不先进入首页),那么当前页contact页面拿不到用户信息。因为请求数据是异步的,如果异步全局读不到,那么就需要在app.js里通过函数返回数据。 

(1)打开app.js,进行编写,

// app.js
App({
  onLaunch() {
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 进入小程序,获取用户之前是否授权信息
    // 1.获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
    wx.getSetting({
      success:res=>{
        console.log(res);
        // 判断reswx.authSetting是否包含userInfo = true
        if (res.authSetting['scope.userInfo']){ // 授权了
          console.log("之前已经授权过用户信息,直接获取")
          // 获取小程序api,获取用户信息
          wx.getUserInfo({
            success:result=>{
              console.log('用户信息',result)
              // 获取用户信息之后,存储到全局变量globalData  
              this.globalData.userInfo = result.userInfo
              // 如果异步全局读不到,那么函数返回数据
              if(this.callback){
                this.callback(result.userInfo)
              }
            }
   
          })
        } else{
          // 没有授权--跳转到授权页面
          wx.showToast({
            title: '之前没有授权,请授权后查看小程序',
          })
          // wx.switchTab({
          //   url: 'pages/contact/contact',
          // })
        }
      }
    })
  },
  globalData:{
    userInfo:''   
  }
})

编写 contact页面

 (2)首先在contact.js中添加这一行代码,之后进行编写,

小程序获取用户头像和昵称

 

// pages/contact/contact.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isShow: true,   // 显示按钮
    userInfo: '',   // 存储用户信息
  },
  // 1.点击按钮,授权头像和昵称
  getUserInfo(e) {
    console.log(e);
    this.setData({
      userInfo : e.detail.userInfo,
      isShow : false
    })
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取app.js全局变量globalData的用户信息,如果有数据则渲染授权信息,没有不渲染
    if (app.globalData.userInfo){
      console.log('全局变量授权信息存在')
      this.setData({userInfo:app.globalData.userInfo,isShow:false})  
    }else{
      // 如果异步全局读不到,那么通过给app对象定义函数,接收数据
      app.callback=res=>{
        console.log(res)
        this.setData({userInfo:app.globalData.userInfo,isShow:false})  
      }
    }

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

(3)contact.wxss和contact.wxml不变

/* pages/contact/contact.wxss */
page {
  background: #f5f5f5;
}

.userInfo {
  padding: 10px;
  background: #fff;
  display: flex;
  align-items: center;
}
.img .logo {
  width: 180rpx;
  height: 180rpx;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid #ccc8c8;
  display: block;
}
<!--pages/contact/contact.wxml-->
<!-- 用户点击:获取头像和昵称
1.button触发按钮点击事件
2.定义函数,获取e.detail获取头像的昵称
3.刷新页面--再次进入还需要点击按钮。希望:之前授权了,直接获取头像和昵称
    本地存储:获取用户头像和昵称之后,把数据存储本地
            缺点:数据固定了,不会更新
    重新获取:推荐
 -->
<view class="userInfo">
  <button wx:if='{{isShow}}' open-type="getUserInfo" bindgetuserinfo="getUserInfo">获取头像和昵称</button>
  <view wx:else>
    <view class='img'><image class="logo" src="{{userInfo.avatarUrl}}" alt=""/></view>
    <view>{{userInfo.nickName}}</view>
  </view>
</view>

展示效果:

(1)进行普通编译,默认先进入首页,可以看到console调试器上打印出了“之前已经授权过用户信息,直接获取”,

小程序获取用户头像和昵称

(2)再进入contact页面,可以看到“全局变量授权信息存在” ,

小程序获取用户头像和昵称

(3)清空缓存之后,再次进行普通编译,会发现调试器打印的授权信息中没有“userInfo:true”,而且contact页面显示的是“获取用户头像和昵称”按钮。文章来源地址https://www.toymoban.com/news/detail-491096.html

到了这里,关于小程序获取用户头像和昵称的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序获取用户昵称头像调整记录

    调整说明 自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整: 自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微

    2024年02月16日
    浏览(35)
  • 微信小程序如何获取用户头像昵称

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

    2024年02月11日
    浏览(67)
  • 小程序用户头像昵称获取不到解决办法

           1.  根据官方要求,不会要求强制性授权,头像和昵称也将被收回,给的是统一的头像和昵称,需要我们调用接口去获取微信头像和昵称。           2. 通过原生的标签调用来获取微信头像和微信昵称。 注意:这里的标签不能够修改,修改会导致头像回显问题和昵

    2024年02月11日
    浏览(43)
  • 微信小程序:获取用户信息(昵称和头像)

    微信小程序获取用户信息的接口几经变更,建议直接使用方式四: wx.getUserProfile 获取 组件功能调整为优化用户体验,平台将于2022年2月21日24时起回收通过展示个人信息的能力。 如有使用该技术服务,请开发者及时对小程序进行调整,避免影响服务流程。查看详情: https://de

    2023年04月08日
    浏览(55)
  • uniapp中微信小程序获取用户头像昵称

    关于小程序用户头像昵称获取规则调整的公告 意思就是说 从 2022 年 10 月 25 日 24 时后 wx.getUserProfile 获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户” 最新:用户昵称,头像获取规则 onChooseAvatar 方法必须使用 this.avatarUrl = \\\'data:image/jpeg;base64,\\\' + wx.getFileS

    2024年02月13日
    浏览(58)
  • uniapp 微信小程序 获取用户头像和昵称

    自2022年10月25日后,小程序  wx.getUserProfile 接口  被收回,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。如需获取用户头像昵称,可以手动获取,具体步骤👉「头像昵称填写能力」  ✍GitHub完整代码地址👉: https://github.com/c

    2024年02月08日
    浏览(54)
  • 微信小程序获取用户头像和昵称的代码

    以下是微信小程序获取用户头像和昵称的代码示例: 获取用户信息授权 首先,需要向用户请求授权获取其头像和昵称。可以通过调用 wx.getUserProfile 方法来获取用户信息,该方法会弹出授权窗口,用户可以选择是否授权。 显示用户头像和昵称 获取用户头像和昵称后,可以将

    2024年02月16日
    浏览(42)
  • 如何在小程序中获取用户昵称、电话号,头像

    一、如何获取昵称(获取微信昵称)以Taro框架为例 Taro框架中的组件Input的一个属性,type属性的值有一个nickname. 如果要拿到input的值,是要value结合onChange事件。 二、获取手机号 通过Button组件的属性来获取。 1、Button组件的open-type属性,当值为getPhoneNumber时进行用户授权。(手

    2024年02月04日
    浏览(67)
  • 小程序中新版本的获取用户头像与昵称:bind:chooseavatar

    前言:         自从微信官方把获取用户昵称与头像的功能改动以后,给我们开发和用户的操作又增加了很多负担,但是没办法,只能使用最新的使用方法了。 小程序用户头像昵称获取规则调整公告 注意,真机的效果,昵称会有所不同   1、index.wxml 获取头像核心代码: 2、

    2024年02月11日
    浏览(44)
  • 微信小程序获取用户头像和昵称完美解决方法(最新方法)

    自 2022 年 10 月 25 日 24 时后,用户头像昵称获取规则将进行如下调整 从基础库 2.21.2 开始支持 当小程序需要让用户完善个人资料时,可以通过微信提供的头像昵称填写能力快速完善。 根据相关法律法规,为确保信息安全,由用户上传的图片、昵称等信息微信侧将进行安全检

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包