浏览 SDKs · React Native
SDKsReact Native

分页查询群成员

分页查询指定群组的成员。

复制

调用 getGroupMemberList() 分页查询指定群组的成员,并按成员角色筛选。

const members = await OpenIMSDK.getGroupMemberList({
  groupID: 'group-001',
  filter: GroupMemberFilter.All,
  offset: 0,
  count: 50,
});

参数说明

参数类型是否必填说明
groupIDstring目标群组 ID。
filterGroupMemberFilter成员角色筛选条件。
offsetnumber分页偏移量,第一页传 0
countnumber本次读取的成员数量。

GroupMemberFilter 的取值如下:

枚举值数值说明
GroupMemberFilter.All0全部成员。
GroupMemberFilter.Owner1仅群主。
GroupMemberFilter.Admin2仅管理员。
GroupMemberFilter.Normal3仅普通成员。
GroupMemberFilter.AdminAndNormal4管理员和普通成员。
GroupMemberFilter.AdminAndOwner5管理员和群主。

继续读取下一页时,将 offset 设置为已读取的成员数量。

返回结果

调用完成后返回当前页的 GroupMemberItem[]。字段说明见群组概览

监听群成员变化

成员加入、退出或资料变化时,分别触发 OnGroupMemberAddedOnGroupMemberDeletedOnGroupMemberInfoChanged。事件回调直接接收 GroupMemberItem

const handleMemberAdded = (member: GroupMemberItem) => {
  // 将 member 添加到对应群组的成员列表
};

const handleMemberDeleted = (member: GroupMemberItem) => {
  // 根据 member.groupID 和 member.userID 删除成员
};

const handleMemberChanged = (member: GroupMemberItem) => {
  // 根据 member.groupID 和 member.userID 更新成员资料
};

// 设置监听
OpenIMSDK.on(OpenIMEvent.OnGroupMemberAdded, handleMemberAdded);
OpenIMSDK.on(OpenIMEvent.OnGroupMemberDeleted, handleMemberDeleted);
OpenIMSDK.on(OpenIMEvent.OnGroupMemberInfoChanged, handleMemberChanged);

// 取消监听
OpenIMSDK.off(OpenIMEvent.OnGroupMemberAdded, handleMemberAdded);
OpenIMSDK.off(OpenIMEvent.OnGroupMemberDeleted, handleMemberDeleted);
OpenIMSDK.off(OpenIMEvent.OnGroupMemberInfoChanged, handleMemberChanged);

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