Skip to content
v1
文档/iOS SDK/群组

入群申请查询与审批

开启 invitationApproval 后,邀请或扫码产生的入群申请需要按角色处理。审批列表必须传入当前群的 discussionId,服务端只返回该群的申请,不应把不同群的结果合并为同一审批上下文。

查询待处理申请

objc
- (void)fetchDiscussionApplications:(NSString *)discussionId
                             options:(BIMDiscussionApplicationQueryOptions * _Nullable)options
                                succ:(BIMDiscussionApplicationPageSucc)succ
                                fail:(BIMFail)fail;

查询参数默认值:skip = 0limit = 20beginTime = -1endTime = LLONG_MAX。还可以按申请人、邀请人、来源和关键字筛选。

swift
let options = BIMDiscussionApplicationQueryOptions()
options.skip = 0
options.limit = 20
options.sources = [BIMDiscussionApplicationSourceInvite]

BIMManager.sharedInstance().fetchDiscussionApplications(
    discussion.discussionId,
    options: options
) { page in
    render(page.applications)
    let total = page.totalCount
} fail: { code, desc in }

BIMDiscussionApplication 包含群资料、申请成员、邀请人、来源、状态、说明、元数据和时间。分页时保持当前 discussionId 不变,并按返回数量/总数更新下一页的 skip

申请人确认

某些邀请流程需要申请人本人确认:

objc
[[BIMManager sharedInstance] agreeDiscussionApplication:discussionId
                                                metadata:nil
                                                    succ:^(BIMDiscussionApplicationResult *result) {
} fail:^(int code, NSString *desc) {
}];

群主或管理员处理

批准、拒绝和忽略都使用 BIMDiscussionApplicationProcessOptions

swift
let process = BIMDiscussionApplicationProcessOptions(
    memberUserIds: selectedApplications.map { $0.member.memberId }
)
process.reason = "资料不完整"       // reject/ignore 可按业务填写
process.force = false               // 仅 approve 使用

BIMManager.sharedInstance().approveDiscussionApplications(
    discussionId,
    options: process,
    succ: { results in },
    fail: { code, desc in }
)

对应接口为:

  • approveDiscussionApplications:options:succ:fail::批准;
  • rejectDiscussionApplications:options:succ:fail::拒绝;
  • ignoreDiscussionApplications:options:succ:fail::忽略。

每个成员都有独立的 BIMDiscussionApplicationResult。批量操作后应按结果更新对应行,而不是假设所有申请都成功。force 只用于批准场景:原邀请人已离群时,由当前审批人继续处理。

UI 建议

  • 仅群主/管理员查询并展示审批入口;
  • 群聊顶部通知只显示当前群的待处理数量;
  • 点击通知进入当前群的审批列表;
  • 操作成功后立即更新本地列表,再按需重新请求第一页;
  • 切换群聊时取消旧请求或校验返回的 discussionId,避免异步结果串群。