微信小程序获取用户信息(getUserProfile)

2022-10-10 11:35:27

最近微信更新了获取用户信息api,原先的getuserInfo基本不能用了,取而代之的是getUserProfile,那我们来看看最新的api该怎么用吧

区别:
getUserProfile
在这里插入图片描述
在这里插入图片描述

  • wx.getUserInfo 不在返回用户授权的头像昵称,只返回匿名信息,但 wx.getUserProfile 会返回用户授权的头像和昵称。
  • wx.getUserInfo 授权成功后,当下次调用时,不会再次弹窗,可以直接获取授权成功返回数据,但 wx.getUserProfile 每次都会弹窗,用户确认允许后才可以拿到用户信息
  • wx.getUserProfile 可以获取用户信息和昵称后,可以存在自己服务器,不然弹窗太多影响用户体验
  • wx.getUserProfile 接口返回的 iv、encryptedData 解密获取不到 unionid,请使用 wx.login 获取 unionid;

2.使用
之前getUserInfo是使用open-type,但是getUserProfile是不能用open-type的,所以就直接用事件调用吧

<viewclass="container"><viewclass="userinfo"><block wx:if="{{!hasUserInfo}}"><button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称</button><button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称</button></block><block wx:else><image bindtap="bindViewTap"class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image><textclass="userinfo-nickname">{{userInfo.nickName}}</text></block></view></view>Page({
  data:{
    userInfo:{},
    hasUserInfo:false,
    canIUseGetUserProfile:false,},onLoad(){if(wx.getUserProfile){this.setData({
        canIUseGetUserProfile:true})}},getUserProfile(e){// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认// 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
    wx.getUserProfile({
      desc:'用于完善会员资料',// 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success:(res)=>{this.setData({
          userInfo: res.userInfo,
          hasUserInfo:true})}})},getUserInfo(e){// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo:true})},})
  • 作者:独孤求赞
  • 原文链接:https://blog.csdn.net/weixin_44989478/article/details/116119365
    更新时间:2022-10-10 11:35:27