浏览 SDKs · WASM
SDKsWASM

获取收到的入群申请

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

复制

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

参数说明

参数类型是否必填说明
groupIDstring[]要查询的群组 ID 数组。
handleResultsnumber[]要查询的申请处理结果。
offsetnumber起始偏移量,第一页传 0
countnumber本次读取数量。
枚举值数值含义
ApplicationHandleResult.Unprocessed0待处理。
ApplicationHandleResult.Agree1已同意。
ApplicationHandleResult.Reject-1已拒绝。
import { ApplicationHandleResult } from '@openim/wasm-client-sdk';

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

返回结果

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

入群申请字段

字段类型说明
groupIDstring申请加入的群组 ID。
userIDstring申请人的用户 ID;与 groupID 共同组成申请记录的合并标识。
nicknamestring申请人的昵称快照。
userFaceURLstring申请人的头像快照。
reqMsgstring入群申请附言。
reqTimenumber申请时间。
joinSourceGroupJoinSource入群申请来源,例如搜索或二维码。
handleResultApplicationHandleResult当前处理结果:待处理、已同意或已拒绝。
handleUserIDstring处理申请的群主或管理员用户 ID;未处理时可能为空。
handledMsgstring处理申请时填写的说明。
handledTimenumber处理时间;未处理时不应作为有效时间使用。
groupNamestring目标群组名称快照。
groupFaceURLstring目标群组头像快照。
groupTypeGroupType目标群组类型。
ownerUserIDstring目标群组的群主用户 ID。
creatorUserIDstring目标群组的创建者用户 ID。
introductionstring目标群组简介快照。
notificationstring目标群组公告快照。
memberCountnumber目标群组成员数量快照。
statusGroupStatus目标群组状态快照。
createTimenumber申请记录创建时间。
exstring申请记录扩展字符串。

申请人和群组资料是申请记录携带的快照。需要展示最新资料时,应分别查询用户资料或群资料,不要把申请中的昵称、头像和成员数写回对应实体缓存。

监听申请变化

本页是入群申请事件的完整监听归属页。申请记录使用 groupID:userID 作为合并标识:

import { CbEvents } 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(CbEvents.OnGroupApplicationAdded, handlers.added);
openimsdk.on(CbEvents.OnGroupApplicationAccepted, handlers.accepted);
openimsdk.on(CbEvents.OnGroupApplicationRejected, handlers.rejected);
openimsdk.on(CbEvents.OnGroupApplicationDeleted, handlers.deleted);
openimsdk.on(
  CbEvents.OnGroupApplicationBadgeCountChanged,
  handlers.badgeChanged,
);

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

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