查询列表、详情、编辑和取消会议
会议邀请、业务列表或深链只提供会议号时,应先查询最新 BIMMeeting,再决定是否展示编辑、开始、加入或取消入口。
查询当前用户的会议列表
列表包含当前登录用户参与的即时呼、即时会议和预约会议,默认按创建时间倒序返回:
objc
BIMMeetingListQueryOptions *options = [BIMMeetingListQueryOptions new];
// 可选:Unknown 表示全部状态。
options.status = BIMMeetingStatusUnknown;
// 可选:创建时间范围,Unix 毫秒时间戳,边界包含。
options.startTime = 0;
options.endTime = 0;
[[BIMManager sharedInstance] fetchMeetingsWithOptions:options
succ:^(BIMMeetingListResult *result) {
self.meetings = result.meetings;
NSLog(@"meeting count = %ld", (long)result.totalCount);
} fail:^(int code, NSString *desc) {
NSLog(@"fetch meetings failed: %d %@", code, desc);
}];options 可以传 nil。状态筛选支持 Waiting、Started、Canceled 和 Ended;startTime 与 endTime 同时存在时,开始时间不能晚于结束时间。
历史列表中的 meetingType 可能为:
| 类型 | 含义 |
|---|---|
BIMMeetingTypeCall | 即时呼记录,只读,不可用于创建会议 |
BIMMeetingTypeInstant | 即时会议 |
BIMMeetingTypeReserve | 预约会议 |
查询会议
objc
[[BIMManager sharedInstance] queryMeetingWithNumber:@"123456789"
succ:^(BIMMeeting *meeting) {
self.titleLabel.text = meeting.subject;
BOOL canEnter = meeting.status == BIMMeetingStatusWaiting ||
meeting.status == BIMMeetingStatusStarted;
self.joinButton.enabled = canEnter;
} fail:^(int code, NSString *desc) {
NSLog(@"query failed: %d %@", code, desc);
}];会议号必须是 9 位数字。不要从会议状态消息中的 meeting_type 推断真实媒体类型;兼容消息可能固定返回 VOICE,应使用查询结果的 meeting.mediaType。
读取会议模型
| 属性 | 说明 |
|---|---|
meetingID | 后台内部 ID,不用于公开 Meeting API |
meetingNumber | 9 位会议号,所有公开操作的主键 |
meetingType | 即时呼、即时会议或预约会议 |
mediaType | 语音或视频,以查询结果为准 |
subject | 会议主题 |
organizerUserID | 当前组织者 |
status | Waiting、Started、Canceled 或 Ended |
reserveStartTime / reserveEndTime | 预约时间,Unix 毫秒时间戳 |
members | 组织者和普通成员,包含角色及加入/离开时间 |
编辑预约会议
编辑接口会完整替换普通受邀成员集合。需要保留的原成员必须和新增成员一起提交,只提交新增用户会移除其他普通成员。
objc
BIMMeetingEditOptions *options =
[[BIMMeetingEditOptions alloc] initWithMediaType:BIMAudioVideoMediaTypeVideo
subject:@"项目周会(时间调整)"];
options.reserveStartTime = newStartTime;
options.reserveEndTime = newEndTime;
options.remindBeforeMinutes = 10;
options.inviteeUserIDs = @[@"user-002", @"user-003", @"user-004"];
[[BIMManager sharedInstance] editMeetingWithNumber:@"123456789"
options:options
succ:^(BIMMeeting *meeting) {
// 使用返回的最新模型刷新页面。
} fail:^(int code, NSString *desc) {
NSLog(@"edit failed: %d %@", code, desc);
}];编辑选项必须包含 1 到 200 字符的主题、有效的预约起止时间和非负提醒分钟数。
取消会议
取消是后台会议管理操作,和参会者本地离会不同:
objc
[[BIMManager sharedInstance] cancelMeetingWithNumber:@"123456789"
succ:^(BIMMeeting *meeting) {
// 使用返回模型中的 Canceled 状态刷新 UI。
} fail:^(int code, NSString *desc) {
NSLog(@"cancel failed: %d %@", code, desc);
}];当前 SDK 不提供普通会议成员增量邀请或普通会议显式结束接口。最终结束状态以后台详情、会议列表或会议状态消息为准。
