浏览 SDKs · WASM
SDKsWASM

获取收到的入群申请

查询当前用户有权处理的入群申请。

复制

群主或管理员使用 getGroupApplicationListAsRecipient() 查询收到的入群申请。

参数说明

参数类型是否必填说明
groupIDsstring[]要查询的群组 ID 数组;传空数组表示查询当前用户有权管理的全部群组。
handleResultsnumber[]要查询的申请处理结果;传空数组表示不限制处理结果。
offsetnumber起始偏移量,第一页传 0
countnumber本次读取数量。
枚举值数值含义
ApplicationHandleResult.Unprocessed0待处理。
ApplicationHandleResult.Accepted1已同意。
ApplicationHandleResult.Rejected-1已拒绝。
import { ApplicationHandleResult } from '@openim/wasm-client-sdk';

const { data: applications } =
  await openimsdk.getGroupApplicationListAsRecipient({
    groupIDs: [groupID],
    handleResults: [ApplicationHandleResult.Unprocessed],
    offset: 0,
    count: 20,
  });

返回结果

Promise 成功后,data 是当前用户有权处理的 GroupApplicationItem[]。查询不会触发事件。

入群申请字段

字段类型说明
groupIDstring申请加入的群组 ID。
userIDstring申请人的用户 ID;与 groupID 共同用于识别一条申请记录。
nicknamestring申请记录中保存的申请人昵称。
userFaceURLstring申请记录中保存的申请人头像。
reqMsgstring入群申请附言。
reqTimenumber申请时间,Unix 毫秒时间戳。
joinSourceGroupJoinSource入群申请来源,例如搜索或二维码。
inviterUserIDstring(可选)邀请入群场景中的邀请人用户 ID;自主申请时可能为空。
handleResultApplicationHandleResult当前处理结果:待处理、已同意或已拒绝。
handleUserIDstring处理申请的群主或管理员用户 ID;未处理时可能为空。
handledMsgstring处理申请时填写的说明。
handledTimenumber处理时间,Unix 毫秒时间戳;未处理时不应作为有效时间使用。
groupNamestring申请记录中保存的目标群组名称。
groupFaceURLstring申请记录中保存的目标群组头像。
groupTypeGroupType目标群组类型。
ownerUserIDstring目标群组的群主用户 ID。
creatorUserIDstring目标群组的创建者用户 ID。
introductionstring申请记录中保存的目标群组简介。
notificationstring申请记录中保存的目标群组公告。
memberCountnumber申请记录中保存的目标群组成员数量。
statusGroupStatus申请记录中保存的目标群组状态。
createTimenumber申请记录创建时间,Unix 毫秒时间戳。
exstring申请记录扩展字符串。
attachedInfostring(可选)SDK 附加信息;只按已确认的业务约定解析。

这些申请人和群组资料保存在申请记录中,不一定是当前最新值。需要展示最新资料时,应分别查询用户资料或群资料;不要用申请中的昵称、头像和成员数覆盖当前用户或群组资料。

监听申请变化

本页集中提供入群申请事件的完整监听示例。使用 groupID:userID 识别一条申请记录:

import { SdkEvent } from '@openim/wasm-client-sdk';

const handlers = {
  added: ({ data }) => mergeGroupApplication(data),
  accepted: ({ data }) => mergeGroupApplication(data),
  rejected: ({ data }) => mergeGroupApplication(data),
  deleted: ({ data }) => removeGroupApplication(data),
  badgeChanged: ({ data }) => updateGroupApplicationBadge(data),
};

openimsdk.on(SdkEvent.OnGroupApplicationAdded, handlers.added);
openimsdk.on(SdkEvent.OnGroupApplicationAccepted, handlers.accepted);
openimsdk.on(SdkEvent.OnGroupApplicationRejected, handlers.rejected);
openimsdk.on(SdkEvent.OnGroupApplicationDeleted, handlers.deleted);
openimsdk.on(
  SdkEvent.OnGroupApplicationBadgeCountChanged,
  handlers.badgeChanged,
);

function removeGroupApplicationListeners() {
  openimsdk.off(SdkEvent.OnGroupApplicationAdded, handlers.added);
  openimsdk.off(SdkEvent.OnGroupApplicationAccepted, handlers.accepted);
  openimsdk.off(SdkEvent.OnGroupApplicationRejected, handlers.rejected);
  openimsdk.off(SdkEvent.OnGroupApplicationDeleted, handlers.deleted);
  openimsdk.off(
    SdkEvent.OnGroupApplicationBadgeCountChanged,
    handlers.badgeChanged,
  );
}

分页期间发生新增、处理或删除时,应重置分页并从第一页重新加载。组件卸载、退出登录或切换账号时调用 removeGroupApplicationListeners()