浏览 SDKs · Flutter
平台
SDKsFlutter

分页获取好友列表

使用 Flutter SDK 分页获取当前用户的好友列表。

复制

分页拉取当前登录用户的好友数据:

参数说明

参数类型是否必填说明
offsetint是分页偏移量,起始值为 0。
countint是每页拉取的好友最大数量。
filterBlackbool否是否过滤已加入黑名单的好友。传入 true 表示过滤黑名单用户;传入 false 表示包含黑名单用户。
final friends = await OpenIM.iMManager.friendshipManager.getFriendListPage(
  offset: 0,
  count: 40,
  filterBlack: true,
);

返回结果

Future 成功返回当前页的好友信息列表(List<FriendInfo>)。

客户端应以 userID 为合并标识去重并按序追加到本地好友列表。当返回的列表长度小于 count 时,通常表明已到达列表末尾。

推荐始终使用分页接口获取好友数据,避免全量拉取造成性能损耗。该查询为本地快照读取,不会触发好友相关的事件监听。

监听好友变更事件

好友的新增、资料变更及删除事件在此集中监听与处理。在联系人状态管理层,应以 userID 作为增删改合并的唯一主键:

void handleFriendChanged(FriendInfo info) {
  mergeFriend(info);
}

void handleFriendDeleted(FriendInfo info) {
  final userID = info.userID;
  if (userID != null) removeFriend(userID);
}

Flutter SDK 在 FriendshipManager 中仅维护单个 OnFriendshipListener 实例。请把以上处理函数统一放入联系人状态层,并在事件概览的应用级集中入口中一次性注册,避免在各个视图 Widget 中重复覆盖监听实例。