浏览 SDKs · React Native
平台
SDKsReact Native

分页获取好友列表

OpenIM React Native SDK 分页获取好友列表。

复制

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

const friends = await OpenIMSDK.getFriendListPage({
  offset: 0,
  count: 50,
  filterBlack: true,
});

参数说明

参数类型必填含义
offsetnumber是分页偏移量,从 0 开始。
countnumber是本次获取的好友数量。
filterBlackboolean否是否过滤已加入黑名单的用户;默认为 false。

返回结果

调用完成后返回当前页的 FriendUserItem[] 好友列表。

好友信息字段

FriendUserItem 常用字段如下:

字段类型含义
userIDstring好友用户 ID,客户端合并与更新好友记录的唯一标识。
nicknamestring好友昵称。
faceURLstring好友头像地址。
remarkstring当前用户为好友设置的备注名。
isPinnedboolean是否置顶该好友。
ownerUserIDstring好友关系所属用户 ID。
operatorUserIDstring最近执行关系操作的用户 ID。
addSourcenumber好友关系添加来源。
createTimenumber好友关系创建时间。
exstring好友关系扩展字段。
attachedInfostringSDK 附加信息。

remark、isPinned 和 ex 属于好友关系,不是账号级用户信息。

监听好友变化

好友关系变化时,触发 OnFriendAdded、OnFriendInfoChanged 或 OnFriendDeleted 事件。事件直接携带对应的好友信息:

const handleFriendAdd = (friend: FriendUserItem) => {
  // 新增好友
};
const handleFriendChanged = (friend: FriendUserItem) => {
  // 按 friend.userID 更新好友列表
};
const handleFriendDeleted = (friend: FriendUserItem) => {
  // 按 friend.userID 从好友列表移除
};

// 设置监听
OpenIMSDK.on(OpenIMEvent.OnFriendAdded, handleFriendAdd);
OpenIMSDK.on(OpenIMEvent.OnFriendInfoChanged, handleFriendChanged);
OpenIMSDK.on(OpenIMEvent.OnFriendDeleted, handleFriendDeleted);

// 取消监听
OpenIMSDK.off(OpenIMEvent.OnFriendAdded, handleFriendAdd);
OpenIMSDK.off(OpenIMEvent.OnFriendInfoChanged, handleFriendChanged);
OpenIMSDK.off(OpenIMEvent.OnFriendDeleted, handleFriendDeleted);

退出登录、切换账号或销毁好友列表状态时,取消这些监听。