SDKsuni-app
用户概览
了解 uni-app / uni-app x SDK 中的用户资料、好友关系、黑名单和在线状态。
unix-openim-sdk 使用 userID 标识用户。实现资料卡、好友添加、联系人或黑名单功能时,首先要区分应用用户的公开资料、当前用户维护的好友关系、好友申请和黑名单状态。
群成员列表、群内昵称、群角色和成员管理属于群组能力,相关用法见分页查询群成员。userID 是跨端稳定标识;昵称和头像可以变化,不能作为状态主键。
用户类型
SDK 会根据使用场景返回不同的用户对象:
| 类型 | 适用场景 | 主要接口 |
|---|---|---|
OpenIMUserInfo | 当前登录用户资料、设置页、当前账号头像和昵称 | getSelfUserInfo()、setSelfInfo() |
OpenIMPublicUserItem | 应用用户查询、好友候选人、陌生人资料卡;它是 OpenIMUserInfo 的公开别名 | getUsersInfo() |
OpenIMFriendUserItem | 当前用户的好友列表、好友备注、置顶和关系扩展字段 | getFriendListPage()、getSpecifiedFriendsInfo() |
OpenIMBlackUserItem | 当前用户黑名单中的用户 | getBlackList()、addBlack()、removeBlack() |
OpenIMFriendApplicationItem | 发出或收到的好友申请及其处理状态 | 好友申请查询、接受、拒绝和删除 API |
OpenIMUserStatusItem | 用户汇总在线状态和在线平台 | subscribeUsersStatus()、getUserStatus() |
同一个 userID 可能同时出现在公开资料、好友资料、黑名单和群成员资料中。联系人页优先使用 OpenIMFriendUserItem;陌生人资料卡使用 OpenIMPublicUserItem;群成员列表使用 OpenIMGroupMemberItem。会话列表和聊天页标题属于会话数据,应使用 OpenIMConversationItem.showName。
OpenIMUserInfo 的公共字段包括 userID、nickname、faceURL、ex 和可选 createTime。attachedInfo 与 globalRecvMsgOpt 是商业版字段,读取前应判空,不要假定公共服务端一定返回。
功能入口
| 需求 | 推荐页面 |
|---|---|
按 userID 查询公开资料,用于查找好友候选人或展示资料卡 | 获取用户资料 |
| 分页、搜索或按 ID 查询好友关系 | 分页获取好友列表 |
| 发送或处理好友申请 | 发送好友申请、获取收到的好友申请 |
| 修改好友资料 | 更新好友资料 |
| 删除好友关系 | 删除好友 |
| 查看和维护当前用户黑名单 | 获取黑名单 |
| 读取或更新当前用户昵称、头像和扩展资料 | 更新当前用户资料 |
| 设置账号级消息接收策略 | 设置全局消息接收方式 |
| 查看加好友权限的当前合同边界 | 设置加好友权限 |
| 订阅和读取在线状态 | 订阅用户在线状态 |
| 读取群成员、搜索成员或查询指定成员资料 | 分页查询群成员 |
业务后端仍是账号身份、实名信息、组织关系和业务权限的权威来源。SDK 用户资料适合聊天展示,不能替代业务登录和授权。
状态更新
页面首次进入时先调用对应查询 API 建立快照,再通过事件合并增量:
这些列表都按 userID 幂等合并。不要只依赖事件恢复完整列表;断线重连、重新登录、切换账号或 App 被系统回收后,应重新查询当前界面所需的快照。
这个页面有帮助吗?