跳到主要内容

UI Kit 与自定义界面

两种接入方式​

方式宿主负责SDK 负责
官方 UI Kit业务登录、获取课堂配置、展示和关闭页面、宿主权限课堂布局、操作入口、事件订阅、状态展示、内部实例清理
Headless 自绘 UI视图、事件订阅、视频/白板挂载、生命周期清理课堂状态、权限策略、进退房与 Provider 编排

Web 官方页面使用 Vue 3,Android 使用 Compose,iOS 使用 SwiftUI/UIKit,Qt 使用 Qt Widgets。Electron 复用 Web UI。各平台安装和启动方式见客户端总览。

Web 控制器​

@eduskit/ui/core 的 ClassroomController 可供非 Vue 视图使用。entry 使用 Web 课堂 Options,render 为宿主的视图更新函数:

import { ClassroomController } from '@eduskit/ui/core';

const controller = ClassroomController.create(entry);
const unsubscribe = controller.subscribe((snapshot) => {
render(snapshot);
});
await controller.initialize();
// On route unmount:
unsubscribe();
controller.destroy();

界面从 snapshot 读取课堂状态和成员权限,IM 消息去重由 SDK 处理。直接使用 Headless 时,按客户端 API订阅和读取状态。

主题和语言​

Web Options 支持 themeMode: 'system' | 'light' | 'dark'、locale、messages,可通过控制器 setThemeMode、setLocale 更新。当前内置语言为 zh-CN 和 en-US。

Android 使用 EduThemeMode 与 localeTag;iOS 使用 EduThemeMode 与 localeTag。平台构造器和枚举写法见各平台指南,不把 Web 配置对象直接传给原生 SDK。

操作与状态​

开麦、开摄命令成功返回只表示受理。界面以流状态回调为准显示设备是否打开。权限、上下台和课堂状态变化后重新读取交互策略。

getClassroomInteractionPolicy() 返回操作的 available 与 reason。权限未开放时展示明确的禁用说明;候场、已下课或能力未就绪等原因按当前状态解释。关闭已经开启的本地设备始终保留入口。