浏览 SDKs · Flutter
平台
SDKsFlutter

获取黑名单列表

使用 OpenIM Flutter SDK 获取当前用户的黑名单。

复制

获取当前登录用户的完整黑名单列表,用于构建黑名单管理界面或在资料卡与会话中进行关系状态核验:

黑名单与群组管理属于两类独立能力。群内禁言、移除群成员或调整群角色应参考群成员管理相关能力;本接口仅读取当前登录用户单向维护的用户黑名单关系。

参数说明

该方法无需传入任何参数。

final blockedUsers = await OpenIM.iMManager.friendshipManager.getBlacklist();

资料卡、会话操作菜单和联系人列表通常只需判断某个 userID 是否存在于黑名单中。建议使用 userID 构建快速判重的集合:

final blockedUserIDs = blockedUsers
    .map((user) => user.userID)
    .whereType<String>()
    .toSet();

bool isBlocked(String userID) => blockedUserIDs.contains(userID);

返回结果

Future 成功返回黑名单信息列表(List<BlacklistInfo>)。列表为空时表示当前未拉黑任何用户。

每个 BlacklistInfo 包含以下字段:

字段类型说明
userIDString被当前用户拉黑的目标用户 ID,客户端合并与状态判断唯一主键。
nicknameString?目标用户昵称,用于列表展示。
faceURLString?目标用户头像地址。
ownerUserIDString黑名单关系所属用户 ID,即当前登录用户。
blockUserIDString黑名单关系中的被拉黑用户 ID;客户端合并仍统一使用 userID。
operatorUserIDString执行拉黑操作的用户 ID。
createTimeint黑名单关系创建时间,Unix 毫秒时间戳。
addSourceint黑名单关系的添加来源。
genderint目标用户的性别枚举值。
exString?业务扩展字段字符串。

如果黑名单界面还需要展示好友备注或全量用户资料,应以 userID 作为关联主键合并数据,并区分不同数据模型的来源字段。

该查询为本地只读快照操作,不会触发黑名单的新增或删除事件监听。首次进入页面或用户下拉刷新时,可重新调用此接口拉取完整快照。黑名单写操作请参考拉黑用户与取消拉黑用户。