欢迎光临
我们一直在努力

九八云百度小程序教程:swan.getUserInfo

  • swan.getUserInfo
    • 方法参数
      • object 参数说明
      • success 返回参数说明
      • userInfo 参数说明
      • 用户数据解密后字段说明
    • 示例
      • 图片示例
      • 代码示例 1:API 获取用户信息(授权后拿到的信息可提交到服务器保存)
      • 代码示例 2:open-data 组件获取用户信息(与 API 的区别是用户不需要授权,只能在页面中展示)
      • 代码示例 3:button 组件获取用户信息

    swan.getUserInfo

    此 API 已被废弃,请使用 button 组件实现相关功能。

    解释:获取用户信息,首次使用的用户会弹出授权提示窗,若用户同意,则会返回用户的真实数据;若用户未登录或者拒绝授权,会返回默认用户“百度网友”及默认的头像地址。使用该 API 需通过获取用户授权设置申请授权后方可对用户发起授权申请,可在 swan.authorize 中查看相关错误码信息。

    方法参数

    Object object

    object 参数说明

    属性名 类型 必填 默认值 说明
    success Function 接口调用成功的回调函数
    fail Function 接口调用失败的回调函数
    complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

    success 返回参数说明

    参数 类型 说明
    userInfo Object 用户信息对象
    data String 包括敏感数据在内的完整用户信息的加密数据,加解密逻辑参考用户数据的签名验证和加解密
    iv String 加密算法的初始向量

    userInfo 参数说明

    参数 类型 说明
    nickName String 用户昵称,用户未设置用户昵称时,将获取用户名。
    avatarUrl String 用户头像
    gender Number 性别:值为 0 时是未知,为 1 时是男性,为 2 时是女性。

    用户数据解密后字段说明

    参数 类型 说明
    nickname String 用户昵称,用户未设置用户昵称时,将获取用户名。
    headimgurl String 用户头像
    sex String 性别:值为 0 时是未知,为 1 时是男性,为 2 时是女性。
    openid String 用户 openid

    示例

    图片示例

    代码示例 1:API 获取用户信息(授权后拿到的信息可提交到服务器保存)

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    • JS
    
     
    1. <view class="wrap">
    2. <view class="card-area">
    3. <view class="display-area">
    4. <image mode="aspectFit" class="display-area-image" src="{{imageSrc}}"></image>
    5. <view class="nickname {{nameColor}}">{{nickname}}</view>
    6. </view>
    7. <view>
    8. <button bind:tap="getUserInfo" type="primary" hover-stop-propagation="true">获取用户信息</button>
    9. <button bind:tap="clearUserInfo" type="default" hover-stop-propagation="true">清空</button>
    10. </view>
    11. </view>
    12. </view>
    
     
    1. Page({
    2. data: {
    3. nickname: '百度网友',
    4. imageSrc: 'https://b.bdstatic.com/searchbox/icms/searchbox/img/avator.png',
    5. nameColor: 'default'
    6. },
    7. getUserInfo(e) {
    8. swan.getUserInfo({
    9. success: res => {
    10. // 用户在首次使用小程序时拒绝授权,可使用此api在合适的业务时机提醒用户再次授权
    11. // swan.openSetting({});
    12. console.log('getUserInfo success', res);
    13. let userInfo = res.userInfo;
    14. this.setData({
    15. nickname: userInfo.nickName,
    16. imageSrc: userInfo.avatarUrl,
    17. nameColor: 'active'
    18. });
    19. },
    20. fail: err => {
    21. // 旧方式的真机提示,与工具对齐
    22. if (err.errCode == 10005) {
    23. swan.showModal({
    24. title: '提示',
    25. content: '通过API获取用户信息将被禁用,为保证用户体验,请使用button组件的open-type获取用户信息'
    26. })
    27. }
    28. // 因为 api 封禁,err的其他错误码对应的场景不会复现,开发者请使用 button 组件实现相关功能
    29. console.log('getUserInfo err', err);
    30. }
    31. });
    32. },
    33. clearUserInfo(e) {
    34. this.setData({
    35. nickname: '百度网友',
    36. imageSrc: 'https://b.bdstatic.com/searchbox/icms/searchbox/img/avator.png',
    37. nameColor: 'default'
    38. });
    39. }
    40. });

    代码示例 2:open-data 组件获取用户信息(与 API 的区别是用户不需要授权,只能在页面中展示)

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    
     
    1. <view class="open-data">
    2. <view class="avatar">
    3. <open-data class="avatar-img" type="userAvatarUrl"></open-data>
    4. </view>
    5. <view class="section">
    6. <view class="sec">
    7. <view class="sec_left">昵称</view>
    8. <view class="sec_right">
    9. <open-data class="sec_left" type="userNickName"></open-data>
    10. </view>
    11. </view>
    12. <view class="sec">
    13. <view class="sec_left">性别</view>
    14. <view class="sec_right">
    15. <open-data class="sec_left" type="userGender"></open-data>
    16. </view>
    17. </view>
    18. </view>
    19. </view>

    代码示例 3:button 组件获取用户信息

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    • JS
    
     
    1. <view class="wrap">
    2. <button type="primary" class="middle-btn" open-type="getUserInfo" bindgetuserinfo="getUserInfo">
    3. 获取用户信息按钮
    4. </button>
    5. </view>
    
     
    1. Page({
    2. getUserInfo(e) {
    3. console.log('用户名称', e.detail.userInfo.nickName)
    4. console.log('用户头像', e.detail.userInfo.avatarUrl)
    5. console.log('用户性别', e.detail.userInfo.gender)
    6. }
    7. });

    未经允许不得转载:九八云安全 » 九八云百度小程序教程:swan.getUserInfo