功能说明
功能说明
WebUI 工作区
WebUI 采用桌面仪表盘式布局:左侧导航按账号权限显示可用页面,顶部搜索框可按名称快速跳转到页面或常用任务。概览页集中展示当前课程、插件连接、在线手表、账号数量、课表同步与插件凭据;侧栏可在桌面端收起,并在窄屏上改为抽屉导航。
顶部提供当前页面刷新、明暗主题切换和个人账号入口。主题与桌面侧栏收起状态保存在当前浏览器中,不会修改服务端账号或其他设备的设置。
课程状态
插件从 ClassIsland 收集当前课表状态,每秒推送给手表和服务端:
- 当前课程与下一节课程。
- 当前时间段和下一时间段。
- 上课或课间剩余倒计时。
- 课表方案名称、是否启用和是否已加载。
- 状态生成时间,用于判断数据是否过期。
- 主界面显隐状态、睡眠/休眠可用性,以及音量状态(是否可控、百分比、静音)。
当前时间段使用插件本地时间,并随快照携带插件时区偏移(timeZoneOffsetMinutes)。手表以快照的 UTC 生成时间加该偏移推算插件本地当前时间,再计算课程进度环,因此即使手表与电脑时区设置不一致,上课/课间进度环也能正常显示。
七日课表
服务端保存插件最近一次推送的七日课表,包含每天日期、修订号、课程列表和科目清单,手表可以按日期浏览。插件离线后仍可查看最后一次同步的数据,但更新时间可能已经过期。
插件每次连接云端时,服务端都会自动拉取一次最新课表。ClassIsland 的“RemoteCI 设置”提供“立即推送当前课表”,可主动把当前七日课表发送给服务端和在线手表,并显示成功、失败或超时。WebUI 侧边栏“课表”页面无论是否已有缓存都可点击“立即向插件拉取课表”,页面会显示拉取进度并等待插件返回;成功后用插件最新课表强制覆盖服务端旧缓存。手表课表页在连接正常时始终显示“向插件拉取”,拉取过程中显示进度动画,并提示成功或 15 秒超时;云端和局域网连接都支持。插件推送、WebUI 拉取、手表拉取、自动拉取和连接初始化共享一个课表任务锁,任一任务运行时,各端会显示占用来源并拒绝重复任务。WebUI 还可把在线期间的自动拉取周期设置为关闭、每 15 分钟、每小时、每 6 小时或每天,设置保存在服务端数据库中。插件离线时请求不会排队,重新连接后会自动再拉取。
账号与权限
服务端使用独立账号登录,有效权限是位掩码:
| 值 | 权限 |
|---|---|
| 1 | 查看当前课程(普通用户固定拥有) |
| 2 | WebUI 访问 |
| 4 | 人员管理 |
| 8 | 发送与清除通知 |
| 16 | 换课 |
| 32 | 主界面、音量与电源控制 |
| 64 | 老师来了 |
管理员的有效权限固定为 127(全部权限)。普通用户默认只含值 1,其余权限由管理员在“人员权限”页面分配。设备会话可以被撤销;修改密码后,原有设备登录会失效。
系统配置
管理员侧边栏提供独立的“系统配置”页面。服务端系统更新已从个人账号页面迁移到该页面;个人账号页面只保留密码与设备会话管理。
WebUI 控制
WebUI 侧边栏只保留一个“控制”入口,不再为同一控制页面重复列出二级菜单。发送通知表单、老师来了、清除通知、主界面、音量、电源和扩展功能都集中在控制页面,并按账号权限显示。
进入“控制”页后,可以查看插件上报的主菜单、音量、静音和电源能力状态,并执行与手表控制页相同的操作。插件离线时按钮不可用;电源操作在提交前要求再次确认。
手表端操作
控制页中的操作由服务端检查账号权限后交给在线插件执行,并返回真实回执。插件离线、权限不足、课表已变化或等待超时时,操作会失败,不会静默排队。
- 首页:旋转表冠或表圈可在课程状态页与菜单页之间切换,一格翻一页;菜单页直接展示功能选项,无需滚动。下课和“即将上课”状态下,主课程按钮直接显示下一节课及其时间,不再在页面底部重复显示“下一节课是”;时间按钮会根据时间段文字自动扩展,并限制在屏幕安全宽度内。
- 换课:选择日期,交换两节课或用指定科目替换;提交时携带课表修订号,防止覆盖别人刚完成的修改。
- 快速换课:主界面点击课程按钮可直接进入换课页;上课中预选当前课,下课或即将上课时预选按钮所显示的下一节课,无需先选日期,返回键直接回主页。
- 发送通知:向 ClassIsland 发送自定义通知,成功后广播给手表。
控制功能
WebUI 与手表共用同一套命令、权限和插件真实回执:
- “老师来了”:客户端只发送一次独立的
TeacherComing指令;插件显示“老师来了”强调提醒,等待 1 秒后自动清除。该操作使用独立的“老师来了”权限,不再依赖发送通知权限。 - 发送通知:向 ClassIsland 发送自定义通知;WebUI 直接在控制页面填写标题、正文和全局发送人显示设置。
- 清除提醒:清除 ClassIsland 当前提醒。
- 主界面:显示或隐藏 ClassIsland 主界面。
- 电源:关机、重启、睡眠或休眠;休眠入口只在插件报告可用时显示。
- 音量:拖动 WebUI 音量条后自动提交,不需要额外点击按钮;静音状态下向高调节会在同一条命令中自动取消静音。页面以插件上报的真实状态刷新。
- 扩展:其他 ClassIsland 插件注册的扩展功能显示在控制页,并按参数表单填写后执行。
开发者连接设置
正常使用时,插件和手表都应保持云端中转与局域网能力开启,因此普通连接页面不再提供这些关闭开关。插件在 ClassIsland 的“RemoteCI 开发者设置”页提供云端和局域网服务开关;手表在“设置 → 开发者”提供“云服务器”和“局域网直连”两个高级开关,并提供“应用并重连”。关闭后只适合诊断连接问题:插件关闭云端后无法继续刷新账号权限镜像,关闭局域网服务后不再接受手表直连;手表关闭局域网后不会尝试插件直连,关闭云端后也不会在局域网失败时回退。
手表密码只由云端服务端验证,所以密码登录会临时启用一次云端认证,即使开发者此前关闭了后续云端连接。这样退出账号不会把设备锁在无法登录的状态;认证完成后的重连仍尊重开发者设置。
插件每次连接服务端都会上报当前监听端口和所有可用局域网 IP。服务端向在线手表转发并为新连接缓存最近结果;手表保存候选地址和端口,依次尝试直连并记住成功地址。普通“设置 → 连接”仍可手动修改 IP 与 1-65535 范围内的端口,用于指定网卡或诊断自动发现。
首次登录页提供“扫描局域网设备”。手表通过 UDP 48765 发现插件,选中后从插件读取云服务器地址并补齐局域网 IP/端口;用户确认云地址后,密码仍直接由云服务器验证。鉴权成功后优先切回局域网,成功时不建立重复的云端 WebSocket。反方向上,从云端首次登录仍会由服务端补齐插件的局域网地址,因此任意一种已知连接信息都可以补出另一种。
操作前确认
换课、替换课程、电源与音量会改变教室电脑的真实状态。正式使用前应先在测试课表中确认行为。
通知
插件可以把七类事件同步给手表,手表端可以逐类开关并触发系统通知和振动:上课、课间、放学、课表变更、自定义消息、ClassIsland 自动化“显示提醒”、第三方 ClassIsland 插件通知。
自定义通知的标题与正文均可留空:标题留空时显示默认标题“RemoteCI 通知”,正文留空时显示原标题。通知由插件执行时添加“由用户名发送:”前缀(可由服务端全局设置关闭),发送者名称取账号的用户名(显示名),客户端无法覆盖。通知请求还可以分别控制提醒强调特效、提醒音效和语音朗读;省略时均为关闭。
更新
- 服务端:管理员在“系统配置 → 系统更新”选择正式版或 Beta 渠道;正式版排除预发布,Beta 同时包含正式版和预发布。强制更新可重新下载并覆盖同一版本,但不允许降级;Windows、Linux 与 Docker 会按各自安全流程替换实际程序集目录并自动重启。Development 环境由 Visual Studio 或
dotnet build管理,WebUI 不提供覆盖更新入口。 - 手表:在“设置 → 更新”选择正式版或 Beta 渠道,设置会保存在本机。强制更新可重新下载并覆盖同一版本,但不能降级;必须先连接 WebUI,目标版本始终不得高于该 WebUI,安装确认回调使用 Android PackageInstaller 的可变显式 PendingIntent。
- 插件:升级由 ClassIsland 插件市场统一管理。
- 飞牛 fnOS:检查和升级由 fnOS 应用商店统一管理,WebUI 不提供下载按钮。
外观主题
手表在“设置 → 外观”中可以切换整套 Material Design 3 配色方案,选择后立即生效并保存在本机,重启不会丢失。内置方案:
| 配色 | 说明 |
|---|---|
| 淡紫 | 默认方案,对齐现有 Figma 设计与 M3 淡紫容器色 |
| 经典紫 | M3 默认紫色(primary #6750A4)系列 |
| 蓝色 | M3 blue 官方色板 |
| 绿色 | M3 green 官方色板 |
| 橙色 | M3 orange 官方色板 |
| 粉色 | M3 pink 官方色板 |
配色切换只影响手表应用自身的界面(首页、课表、设置等),不会改变通知内容或协议行为。
手表界面会读取系统报告的屏幕形状:圆形设备保留圆形安全画布,矩形设备使用完整屏幕区域,不会再被圆形遮罩截断;两种形状都以屏幕短边作为组件缩放基准。
手表首页没有当前课程时,状态标题直接显示“暂无课程”,并隐藏无效的课程/换课按钮;存在课程时,课程按钮会随课程名称长度伸缩,并与下方时间框统一采用两者中较长的宽度。
当前未包含
以下内容属于后续方向,不应当作现有功能使用:
- Wear OS Tiles 小组件。
- watchOS 客户端。
- 针对特定国产手表系统的专用适配。
- 面向公网的托管服务。
- 真实写入 ClassIsland 的“切换单双周”功能(已移除)。