博客概要

     针对使用微信小程序时获取用户头像、昵称的三种方法,做一个简单分享~


文章目录

  • 博客概要
  • 1.wx.getUserInfo接口
  • 2.button触发
  • 3.open-data标签
  • 总结


1.wx.getUserInfo接口

     传统效果是会出现“授权弹窗”,需要用户手动确认。目前,此接口已有调整,使用该接口将不再出现授权弹窗,请使用方法2(如下)引导用户主动进行授权操作

示例场景:

  1. 用户未授权,调用该接口将直接报错
  2. 用户已授权,可使用该接口正常获取用户信息

2.button触发

     不出现“授权弹窗”,但需要button做引导,来得会没有弹窗突兀…

示例代码:

<!--wxml-->
	<block wx:if="{{hasUserInfo === true}}">
		<image src="{{userInfo.avatarUrl}}"></image>
		<text>{{userInfo.nickName}}</text>
	</block>
	<button 
		open-type="getUserInfo" 
		bindgetuserinfo="getUserInfo"
	>
		授权登录
	</button>
//js
Page({
  data: {
    hasUserInfo: false
  },
  getUserInfo(info) {
    const userInfo = info.detail.userInfo
    this.setData({
      userInfo,
      hasUserInfo: true
    })
  },
})

运行结果:



微信获取unionId java 微信获取头像昵称管理_获取用户信息

微信获取unionId java 微信获取头像昵称管理_微信小程序获取用户头像、昵称_02


     样式自行填充= =

元素说明:

属性

说明

open-type

微信开放能力

bindgetuserinfo

用户点击该按钮时,会返回获取到的用户信息

回调的detail数据与wx.getUserInfo返回的一致

open-type="getUserInfo"时有效



open-type合法值


说明

getUserInfo

获取用户信息

可以从bindgetuserinfo回调中获取到用户信息

contact

打开客服会话

如果用户在会话中点击消息卡片后返回小程序

可以从 bindcontact 回调中获得具体信息

share

触发用户转发

getPhoneNumber

获取用户手机号

可以从bindgetphonenumber回调中获取到用户信息

launchApp

打开APP,可以通过app-parameter属性设定向APP传的参数

openSetting

打开授权设置页

feedback

打开“意见反馈”页面

用户可提交反馈内容并上传日志

开发者可以登录小程序管理后台后

进入左侧菜单“客服反馈”页面获取到反馈内容





3.open-data标签

     使用open-data可以不用用户授直接获取,用于展示微信开放的用户数据,所以如果你仅仅只是想展示用户信息的话,就,用它!用它!用它!= =毕竟代码少…

示例代码:

<!--wxml-->
	<!-- 获取头像 -->
	<open-data type="userAvatarUrl"></open-data>
	<!-- 获取昵称 -->
	<open-data type="userNickName" lang="zh_CN"></open-data>

元素说明:

属性

说明

type

开放数据类型

lang

当type="user"时生效,以哪种语言展示userInfo



type合法值


说明

userNickName

用户昵称

userAvatarUrl

用户头像

userGender

用户性别

userCity

用户所在城市

userProvince

用户所在省份

userCountry

用户所在国家

userLanguage

用户的语言

groupName

拉取群名称



lang合法值


说明

en

英文

zh_CN

简体中文

zh_TW

繁体中文




总结

     具体场景需要具体考虑使用不同的方法,以上仅分享了基础的获取途径,涉及openid、用户信息API等进一步有需要的…自个儿研究去= =prprpr