浏览 SDKs · React Native
SDKsReact Native

分页获取好友列表

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

复制

调用 getFriendListPage() 分页获取当前用户的好友列表。

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

参数说明

参数类型是否必填说明
offsetnumber分页偏移量,首页传 0
countnumber本次请求的好友数量。
filterBlackboolean是否过滤黑名单用户。

返回当前页的 FriendUserItem[]。继续加载时按请求条目数增加 offset;好友增删后重新请求列表。

好友信息字段

FriendUserItem 类型字段说明:

字段类型说明
userIDstring好友用户 ID。
nicknamestring好友昵称。
faceURLstring好友头像地址。
remarkstring当前用户为好友设置的备注。
isPinnedboolean是否置顶。
ownerUserIDstring好友关系所属用户 ID。
operatorUserIDstring最近执行关系操作的用户 ID。
addSourcenumber好友关系添加来源。
createTimenumber好友关系创建时间。
exstring好友关系扩展字段。
attachedInfostringSDK 附加信息。

remarkisPinnedex 属于好友关系,不是账号级用户信息。

监听好友变化

好友关系变化时,触发 OnFriendAddedOnFriendInfoChangedOnFriendDeleted 事件。事件直接携带对应的好友信息:

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);

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