浏览 SDKs · React Native
平台
SDKsReact Native

分页查询群成员

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

复制

分页查询指定群组的成员列表,并可按成员角色进行筛选。

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[]。返回数量少于 count 时表示已拉取到最后一页;客户端在合并群成员列表时,必须使用复合标识 groupID:userID 作为唯一合并标识。各字段详细说明见群组概览。

监听群成员变化

成员加入、退出或资料变化时,分别触发 OnGroupMemberAdded、OnGroupMemberDeleted 和 OnGroupMemberInfoChanged 事件。客户端在处理增量更新时,同样使用 groupID:userID 复合键定位并更新具体群成员:

const handleMemberAdded = (member: GroupMemberItem) => {
  // 将 member 添加到对应群组的成员列表,按 member.groupID 和 member.userID 识别
};

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

退出登录、切换账号或销毁成员列表页面时,应使用同一函数引用取消监听。