返回

小程序新规:获取头像昵称不再那么简单,开发者需留意!

前端

微信小程序获取用户头像和昵称的新方式

获取用户头像和昵称的常见需求

在微信小程序开发中,获取用户的头像和昵称是一种常见需求。这些信息通常用于完善用户资料、显示用户头像,或者用于其他需要个人信息的场景。

以往的获取方式:wx.getUserInfo()方法

以往,开发者可以通过wx.getUserInfo()方法轻松获取用户的头像、昵称和性别信息。该方法不需要用户授权,开发者可以直接调用即可。

微信官方的新规定

然而,微信小程序官方最近宣布了新的规定,更改了获取用户头像和昵称的方式。根据新规定,开发者需要使用wx.getUserProfile()方法,才能获取到用户的完整信息。

获取用户头像和昵称的新方法:wx.getUserProfile()

目前,获取用户头像和昵称主要有两种方法:

  1. wx.getUserProfile()方法:

    • 微信小程序官方推荐的新方法
    • 可以获取用户的头像、昵称、性别、所在城市和国家等信息
    • 需要用户授权才能使用
  2. wx.getUserInfo()方法:

    • 传统获取方法
    • 只能获取用户的头像、昵称和性别信息
    • 不需要用户授权
    • 已不再推荐使用

使用wx.getUserProfile()方法的步骤

  1. 引入wx.getUserProfile()方法:
const { getUserProfile } = require('@/utils/wx.js');
  1. 调用wx.getUserProfile()方法:
getUserProfile({
  desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
  success: (res) => {
    const { avatarUrl, nickName } = res.userInfo;
    // 使用头像和昵称
  }
});
  1. 获取用户授权:

    • 调用wx.getUserProfile()方法后,会弹出授权弹窗
    • 用户点击授权后,开发者可以获取到用户的完整信息

需要注意的事项

  1. wx.getUserProfile()方法需要用户授权才能使用。如果用户拒绝授权,则无法获取到用户信息。
  2. wx.getUserProfile()方法只能在真机上使用,在开发工具中无法正常工作。
  3. 使用wx.getUserProfile()方法获取头像昵称需要向微信小程序官方进行申请,获取申请通过后才能使用该方法。

总结

微信小程序获取头像昵称的方式已经发生变化,开发者需要使用wx.getUserProfile()方法来获取用户头像和昵称。wx.getUserProfile()方法需要用户授权才能使用,并且只能在真机上使用。开发者需要特别注意这些事项,以免在开发小程序时遇到问题。

常见问题解答

  1. 为什么微信官方更改了获取用户头像和昵称的方式?

    • 为了保护用户隐私,提高用户对个人信息的安全性和控制权。
  2. wx.getUserProfile()方法和wx.getUserInfo()方法有什么区别?

    • wx.getUserProfile()方法需要用户授权,可以获取用户的完整信息,包括头像、昵称、性别、所在城市和国家等。
    • wx.getUserInfo()方法不需要用户授权,只能获取用户的头像、昵称和性别信息。
  3. 如何向微信小程序官方申请使用wx.getUserProfile()方法?

    • 在微信小程序管理后台提交申请,填写相关信息和材料,等待官方审核。
  4. 为什么在开发工具中无法使用wx.getUserProfile()方法?

    • 因为wx.getUserProfile()方法需要调用微信开放能力,而开发工具无法模拟真机的环境。
  5. 如果用户拒绝授权,如何获取用户的头像和昵称?

    • 如果用户拒绝授权,则无法直接获取用户的头像和昵称。开发者可以考虑通过其他方式,例如提供匿名登录或仅显示部分用户信息,来满足业务需求。