外观
联系人与好友关系
联系人能力用于维护聊天中的好友和申请状态。客户原有组织通讯录、员工目录或业务客户名单仍可由业务系统维护,是否允许通信由双方约定的关系与服务端权限共同决定。
读取联系人
dart
final contacts = await sdk.contacts.refresh();
final requests = await sdk.contacts.requests();sdk 为当前账号已连接的实例。标准页面使用 contactController 管理快照与刷新,自定义页面可复用该控制器,避免聊天页和通讯录页长期各保存一套不同的昵称、头像。
联系人通过稳定用户 ID 关联。资料刷新后,通讯录与已有单聊会话使用同一份昵称和头像更新结果。
申请处理
同意或拒绝使用当前申请快照中的 requestId 与 requestVersion,将操作绑定到对应申请。
dart
await sdk.contacts.accept(
applicantUserId,
requestId: currentRequestId,
requestVersion: currentRequestVersion,
);以上变量取自当前账号收到的有效申请。拒绝使用 contacts.reject,可按业务需要传入说明。
关系与消息权限
好友申请通过后更新关系状态。消息发送遵循服务端配置的好友、拉黑和账号权限规则,客户端根据操作结果更新列表与提示。
删除好友只调整关系,不删除对方账号或自动清空聊天历史。界面分别提供关系管理与记录管理入口。
与业务通讯录结合
例如项目系统可以先展示业务成员,再按稳定用户映射进入会话。项目资料由业务 API 鉴权,聊天历史由 IM 服务按会话权限管理。
接入检查
检查申请处理、资料更新、账号切换与关系变更后的列表状态。多设备同时处理同一申请时,按服务端返回结果刷新对应申请。