客户端 API 与事件
本页使用 TypeScript 语义名称,具体签名按各平台指南调用。当前源码与发布版的区别见版本说明。
常用方法
| API | 含义 |
|---|---|
initialize / enterClassroom | 初始化与进课;Web 初始化直接接收课堂 |
startClass / endClass | 课堂上下课,受角色与状态约束 |
leaveClassroom / destroy | 退出本人 / 释放实例 |
getClassInfo | 读取生命周期、课堂信息与计时 |
getClassroomInteractionPolicy | 读取动作可用性与限制原因 |
setLocalAudioMuted / setLocalVideoMuted | 受理本地开关设备;false 表示请求打开 |
userRaiseHand / userCancelHand / userLeaveStage | 举手、取消举手、本人下台 |
inviteUserOnStage / approveUserOnStage / rejectUserOnStage / removeUserFromStage | 教师管理上下台 |
getOnStageUserList / getRaisedHandList | 读取台上和举手列表 |
getUserPermissionList / loadMemberPermissions | 读取本人权限 / 异步加载成员有效权限 |
sendImMessage / getImMessageList | 发送群文本 / 读取当前消息窗口 |
loadImMessageHistory / getImHistoryState | 加载历史消息 / 读取分页状态 |
getClassroomCourseware / getCoursewareManifest | 读取已绑定课件 / 异步加载 manifest |
历史消息默认每页 50 条,limit 为 1–100;下一页使用返回的 nextCursor。getImMessageList() 只读取当前内存窗口,最多 200 条,不主动请求历史。课件只有 status === 'ready' 时才加载 manifest,不能在渲染主线程阻塞等待。
事件注册
Web / 小程序使用 sdk.on,返回取消函数:
const unsubscribe = sdk.on('onStreamInfoChanged', (streams) => {
renderStreams(streams);
});
// 页面不再需要此订阅时:
unsubscribe();
Kotlin 使用 addStreamInfoChangedListener,Swift 使用 onStreamInfoChanged。destroy 会清理订阅;仍应避免在已卸载视图的回调中更新 UI。
| API | 含义 |
|---|---|
onJoinSuccess | 后台和 IM 必要域就绪 |
onJoinProgress | 连接阶段与各能力域状态 |
onClassInfoChanged | 课堂信息与生命周期变化 |
onOnStageUsersChanged | 台上成员变化 |
onUserPermissionsChanged | 有效权限变化 |
onStreamInfoChanged | 本地或远端真实流状态变化 |
onImMessageReceived | 消息归并后的通知 |
onWhiteboardRecoveryRequested | 恢复后请求白板同步重载 |
onWhiteboardLiveStrokeReceived | 易失笔迹过程,不代表最终操作已提交 |
onError | 异步 SDK 错误 |
开设备不能在命令返回后立即显示为已开启,应等待 onStreamInfoChanged。老师关闭本地设备的专用回调也要在设备实际关闭后触发。
白板与教学工具
官方 UI Kit 处理 DrawsKit 挂载和同步。Headless 宿主需要连接白板 Adapter、同步与恢复事件;sendWhiteboardSync 与 sendWhiteboardLiveStroke 主要面向该适配层。
源码构建通过 requestTeachingTools(requestJson) 提交教学工具请求,操作结果按请求 ID 在工具视图中关联。可用工具由服务端部署配置决定;教学小黑板暂未开放。各平台的接入要求见客户端 SDK 总览。