长文档建议按当前分组逐页阅读;右侧辅助栏会保留当前位置和快速操作。
配置
Mini-HBUT 提供丰富的配置选项。本页详细说明每个可设置的选项、远程配置结构、以及如何自行部署 OCR 服务和云同步文件服务器。
应用设置
打开应用后,点击底部导航的「我的」→「设置」即可进入设置中心。设置分为外观、后端、调试三大模块。
外观设置
Mini-HBUT 提供高度可定制的界面外观。
主题预设
内置 5 套精心设计的主题:
| 名称 | 类型 | 主色 | 适用场景 |
|---|---|---|---|
| 校园晴空 | 亮色 | #2563eb | 日常学习,清爽稳定 |
| 深海石墨 | 暗色 | #60a5fa | 夜间护眼,低亮度 |
| 薄荷森林 | 鲜明 | #059669 | 柔和护眼,信息清晰 |
| 夕照暖橙 | 鲜明 | #f97316 | 高识别度,功能入口 |
| 极简岩灰 | 中性 | #334155 | 信息密集,高效操作 |
界面微调选项
| 选项 | 可选值 | 说明 |
|---|---|---|
| 卡片风格 | glass / solid / outline | 毛玻璃(半透明模糊)、实色填充、描边线框 |
| 导航样式 | floating / pill / compact | 浮动按钮、胶囊标签、紧凑模式 |
| 界面密度 | comfortable / balanced / compact | 舒适(大间距)、均衡、紧凑(小间距) |
| 图标风格 | duotone / line / mono | 双色图标、线条图标、单色图标 |
| 背景装饰 | mesh / grain / none | 网格背景、颗粒噪点、纯色 |
快捷交互方案
预定义的交互参数组合,影响圆角、字号、间距和动画速度:
- mobile_focus:适合移动端操作,大圆角、大字号、大间距、慢动画
- desktop_dense:适合桌面端,小圆角、标准字号、紧凑间距、快动画
- presentation:演示模式,中等圆角、大字号、适中间距、适中动画
缩放参数
每套主题和交互方案包含以下缩放因子(0.8 ~ 1.4):
radiusScale- 圆角缩放fontScale- 字号缩放spaceScale- 间距缩放motionScale- 动画速度缩放surfaceOpacity- 卡片透明度borderOpacity- 边框透明度
后端设置
后端设置控制 Mini-HBUT 与外部服务的连接方式。进入方式:设置 → 后端。
配置源
- 启用远程配置(推荐):应用启动时自动拉取服务端的远程配置,覆盖 OCR 端点、云同步地址等。
- 仅本地配置:关闭远程配置,完全使用本地手动填写的地址。适合网络受限或自架服务的场景。
服务地址
| 配置项 | 说明 | 默认值 |
|---|---|---|
| OCR 服务地址 | 验证码识别服务的 URL;用于登录时自动识别验证码。 | 由远程配置下发 |
| 临时文件上传地址 | 课表图片等临时文件上传服务的 URL。 | 由远程配置下发 |
| 云同步中转地址 | 课表/设置云同步的中转服务 URL。 | 由远程配置下发 |
| 云同步秘钥引用 | 标识使用哪个 KV 命名空间的引用名称。 | kv1-main |
模块参数
以下参数影响应用的网络行为,修改后自动保存并立即生效:
| 参数 | 默认值 | 范围 | 说明 |
|---|---|---|---|
| 请求超时(ms) | 15000 | 5000 - 60000 | 网络请求的最大等待时间 |
| 探针超时(ms) | 8000 | 3000 - 30000 | 功能测速时每个目标的超时时间 |
| 电费查询重试 | 2 | 0 - 5 | 电费查询失败后的重试次数 |
| 空教室查询重试 | 2 | 0 - 5 | 空教室查询失败后的重试次数 |
| 重试延迟(ms) | 1000 | 500 - 10000 | 两次重试之间的等待间隔 |
| 移动端预览线程 | 3 | 1 - 8 | 移动端文件预览的并发数 |
| 移动端下载线程 | 4 | 1 - 8 | 移动端文件下载的并发数 |
| 桌面端预览线程 | 4 | 1 - 12 | 桌面端文件预览的并发数 |
| 桌面端下载线程 | 6 | 1 - 12 | 桌面端文件下载的并发数 |
| 云同步冷却(s) | 180 | 10 - 3600 | 云同步操作的通用冷却时间 |
| 上传冷却(s) | 120 | 120 - 3600 | 云同步上传的最小间隔 |
| 下载冷却(s) | 10 | 10 - 3600 | 云同步下载的最小间隔 |
功能测速
设置中心提供并发测速功能,可同时测试以下服务的延迟:
测速结果以颜色标记延迟等级:🟢 良好(<500ms)🟡 一般(500-2000ms)🔴 较差(>2000ms 或超时)。
字体设置
字体设置提供 6 种中文字体选择和 3 种 CDN 线路配置。
| 字体 | 标识 | 来源 | 说明 |
|---|---|---|---|
| 默认 | default | 系统内置 | 使用操作系统默认中文字体 |
| 得意黑 | deyihei | CDN 下载 | 开源免费装饰字体,所有平台可用,推荐下载缓存 |
| 黑体 | heiti | 系统内置 | Noto Sans SC / 微软雅黑 |
| 宋体 | songti | 系统内置 | Noto Serif SC / 宋体 |
| 楷体 | kaiti | 系统内置 | LXGW WenKai / 楷体_GB2312 |
| 仿宋 | fangsong | 系统内置 | 仿宋_GB2312 |
CDN 线路设置:
auto(推荐):自动选择最快的节点,jsDelivr 优先,失败自动降级到 unpkg。jsdelivr:固定使用 jsDelivr CDN,国内通常较快。unpkg:固定使用 unpkg CDN,作为备用选择。
缓存机制:
- 字体文件下载后存储在 IndexedDB(
hbu_font_binary_cache_v1)中。 - 字体选择存储在 localStorage(
hbu_font_settings_v1)中。 - 每次启动自动恢复上次选择的字体,无需重新下载。
- 得意黑字体支持可视化下载进度条和失败重试。
通知设置
在「通知」页面配置后台静默检查的行为(仅移动端 Capacitor 版支持完整后台通知)。
| Preferences 键 | 说明 |
|---|---|
hbu_bg_student_id | 后台检查使用的学号(自动填充) |
hbu_bg_api_base | API 基础地址(自动配置) |
hbu_bg_enable_grade | 是否启用成绩通知(true/false) |
hbu_bg_enable_exam | 是否启用考试提醒(true/false) |
hbu_bg_enable_power | 是否启用电费监控(true/false) |
hbu_bg_interval_min | 检查间隔(分钟),最小 15 分钟 |
hbu_bg_dorm_selection | 宿舍选择(JSON 格式,自动保存) |
调试设置
调试模块提供实时日志查看功能,便于排查问题。
- 日志过滤:支持按级别过滤(all / debug / info / warn / error / log)。
- 日志查看:实时滚动显示应用运行日志。
- 日志操作:支持一键复制全部日志和清空日志。
- 统计面板:显示日志总数、警告数和错误数。
远程配置
Mini-HBUT 支持从服务端拉取远程配置(remote_config.json),用于动态下发公告、OCR 端点、云同步配置、AI 模型列表等信息,无需更新客户端即可调整行为。
远程配置拉取流程
- 应用启动时,依次尝试以下源获取远程配置:
- GitCode Raw(国内直连最快)
- gh-proxy 代理(GitHub 代理)
- GitHub 直连(海外/VPN 用户)
- 成功获取后缓存到本地,后续离线时使用缓存版本。
- 如果用户关闭了「启用远程配置」,则跳过拉取,仅使用本地设置。
远程配置字段详解
以下是 remote_config.json 的完整字段说明:
📢 announcements - 公告系统
| 字段 | 类型 | 说明 |
|---|---|---|
ticker | 数组 | 滚动公告列表,在首页顶部横向滚动显示 |
pinned | 数组 | 置顶公告,始终显示在首页最上方 |
confirm | 数组 | 需确认公告,用户必须点击确认后才能继续使用 |
list | 数组 | 普通公告列表,在公告页面展示 |
每条公告包含:id、title、summary、content(HTML)、image、link、updated_at。
🔄 force_update - 强制更新
| 字段 | 说明 |
|---|---|
min_version | 最低版本号(如 "1.2.0"),低于此版本的客户端将被强制更新 |
message | 更新提示消息 |
download_url | 下载链接 |
🔍 ocr - 验证码识别
| 字段 | 说明 |
|---|---|
endpoint | 主 OCR 服务地址 |
endpoints | 备用 OCR 端点列表(数组) |
local_fallback_endpoints | 本地回退端点(如局域网内的 OCR 服务) |
enabled | 是否启用 OCR 功能 |
☁️ cloud_sync - 云同步
| 字段 | 说明 |
|---|---|
enabled | 是否启用云同步 |
mode | 同步模式,推荐 "proxy"(通过中转服务) |
proxy_endpoint | 中转服务地址 |
secret_ref | KV 命名空间引用名称 |
timeout_ms | 超时时间(毫秒) |
cooldown_seconds | 冷却时间(秒) |
🤖 ai_models - AI 模型列表
数组格式,每项包含 label(显示名称)和 value(模型标识)。当前默认模型:
📁 resource_share - 资源共享
| 字段 | 说明 |
|---|---|
endpoint | WebDAV 服务地址 |
username / password | WebDAV 认证凭据 |
office_preview_proxy | Office 文件在线预览代理地址 |
temp_upload_endpoint | 临时文件上传地址 |
完整远程配置示例
{
"announcements": {
"ticker": [
{ "id": "ticker-001", "title": "滚动公告标题", "summary": "简短描述", "content": "<p>HTML 内容</p>", "image": "https://...", "updated_at": "2026-01-25" }
],
"pinned": [
{ "id": "pinned-001", "title": "置顶公告", "summary": "...", "content": "...", "pinned": true }
],
"confirm": [
{ "id": "confirm-001", "title": "需确认公告", "require_confirm": true, "content": "..." }
],
"list": [
{ "id": "notice-001", "title": "普通公告", "summary": "...", "content": "..." }
]
},
"force_update": {
"min_version": "1.2.0",
"message": "请更新到最新版本",
"download_url": "https://github.com/superdaobo/mini-hbut/releases"
},
"ocr": {
"endpoint": "http://your-ocr-server:5080/api/ocr/recognize",
"enabled": true
},
"cloud_sync": {
"enabled": true,
"mode": "proxy",
"proxy_endpoint": "https://your-sync-service/api/cloud-sync",
"secret_ref": "kv1-main",
"timeout_ms": 12000,
"cooldown_seconds": 180
},
"ai_models": [
{ "label": "Qwen-Plus", "value": "qwen-plus" },
{ "label": "DeepSeek-R1", "value": "deepseek-r1" }
],
"config_admin_ids": []
}自部署指南
如果你希望使用自己的 OCR 服务或云同步服务器而不依赖公共服务,可以参照以下指南进行部署。
部署 OCR 服务
OCR 服务用于登录时自动识别教务系统的验证码图片。Mini-HBUT 使用统一的 HTTP 接口调用 OCR。
接口规范
POST /api/ocr/recognize
Content-Type: application/json
请求体:
{ "image": "<base64 编码的验证码图片>" }
成功响应:
{ "success": true, "result": "ABCD" }
失败响应:
{ "success": false, "error": "识别失败" }部署要求
- 服务器:需要一台可公网访问的服务器(或局域网内可达的服务器)。
- 端口:默认使用 5080 端口,可自定义。
- HTTPS:移动端要求 HTTPS(或者移动端添加安全例外),桌面端 HTTP 也可以。
- CORS:需要允许跨域请求(
Access-Control-Allow-Origin: *)。
推荐部署方式
- Docker 部署(推荐):可以使用常见的 OCR 服务 Docker 镜像(如 ddddocr、TesseractOCR 等基于 Python 的服务),暴露 API 接口即可。
- HuggingFace Spaces:可以在 HuggingFace 上部署免费的 OCR 服务,公共访问。
- Vercel/Cloudflare Workers:如果 OCR 库支持 Serverless 环境。
配置到客户端
- 方式一(远程配置):修改 remote_config.json 中的
ocr.endpoint字段。 - 方式二(本地覆盖):在应用「设置 → 后端」中手动填写 OCR 服务地址。
- OCR 服务仅做验证码文字识别,不涉及用户密码或学号上传。
- 识别准确率直接影响登录成功率,建议使用针对教务验证码训练过的模型。
- 客户端支持配置多个 OCR 端点(endpoints 数组),主端点失败后自动使用备用端点。
部署云同步服务(Cloudflare Workers)
云同步服务基于 Cloudflare Workers + KV 实现,用于跨设备同步课表、设置和学业数据。
前置条件
- Cloudflare 账号(免费即可)
- Node.js 环境
- Wrangler CLI 工具
部署步骤
- 安装 Wrangler 并登录:
npm i -g wrangler wrangler login - 创建 KV 命名空间:
# 生产 KV wrangler kv namespace create SYNC_KV # 预览 KV wrangler kv namespace create SYNC_KV --preview - 配置 wrangler.toml:
将
wrangler.toml.example复制为wrangler.toml,填入 KV 的 id 和 preview_id:name = "mini-hbut-cloud-sync" main = "src/index.js" compatibility_date = "2026-03-05" [vars] RATE_LIMIT_SECONDS = "60" RATE_LIMIT_UPLOAD_SECONDS = "120" RATE_LIMIT_DOWNLOAD_SECONDS = "10" RATE_LIMIT_PING_SECONDS = "15" [[kv_namespaces]] binding = "SYNC_KV" id = "你的生产 KV ID" preview_id = "你的预览 KV ID" - 设置鉴权令牌(推荐):
wrangler secret put SYNC_API_TOKEN如果不设置,服务将允许匿名访问。
- 部署:
wrangler deploy部署后获得
https://<worker-name>.<subdomain>.workers.dev地址。 - 健康检查:
curl "https://your-worker.workers.dev/sync/ping" # 启用了 Token 时: curl -H "Authorization: Bearer <TOKEN>" "https://your-worker.workers.dev/sync/ping"
Worker API 接口
| 接口 | 方法 | 说明 |
|---|---|---|
/sync/ping | GET | 健康检查 |
/sync/upload | POST | 上传用户数据(student_id + payload) |
/sync/download | GET | 下载用户数据(query: student_id) |
速率限制配置
RATE_LIMIT_SECONDS:默认最小请求间隔(建议 ≥ 60s)RATE_LIMIT_UPLOAD_SECONDS:上传间隔RATE_LIMIT_DOWNLOAD_SECONDS:下载间隔RATE_LIMIT_PING_SECONDS:健康检查间隔
注意:Cloudflare KV 的 expiration_ttl 最小值为 60 秒。
配置到客户端
推荐方式:通过中转服务(如 OCR 服务)代理 Worker API,不要在客户端直接暴露 Worker Token。
在远程配置中设置:
{
"cloud_sync": {
"enabled": true,
"mode": "proxy",
"proxy_endpoint": "https://your-proxy-service/api/cloud-sync",
"secret_ref": "kv1-main"
}
}或者在应用「设置 → 后端」中手动填写:
- 云同步中转地址
- 云同步秘钥引用(secret_ref)
- Token 不应保存在客户端或远程配置 JSON 中,只应保存在中转服务的 Secrets 中。
- 启用 SYNC_API_TOKEN 可防止匿名访问,建议在生产环境启用。
- 速率限制可防止恶意刷接口,建议保持默认配置。
部署 WebDAV 文件服务器(资料分享)
资料分享功能通过 WebDAV 协议连接文件服务器,你可以自行搭建 WebDAV 服务来提供学习资料共享。
推荐方案
- Nginx + WebDAV 模块:轻量高效,适合有 Linux 服务器的场景。
- Nextcloud / ownCloud:功能丰富的自建云盘,自带 WebDAV 支持。
- Caddy + WebDAV:简洁配置,自动 HTTPS。
注意事项
- CORS 配置:必须允许跨域(客户端从不同域名访问 WebDAV)。
- 认证方式:支持 Basic Auth(用户名 + 密码),在远程配置中下发。
- HTTPS:移动端要求 HTTPS 协议。
- Office 预览:如需在线预览 Word/Excel/PPT,需额外配置 Office 预览代理服务(如 ONLYOFFICE 或使用第三方转换 API)。
数据缓存策略
Mini-HBUT 实现了多层缓存机制,在保证数据新鲜度的同时优化性能和离线体验。
| 缓存类型 | TTL | 适用数据 |
|---|---|---|
| 短时缓存 | 30 秒 | 实时性要求高的数据(如排名) |
| 默认缓存 | 5 分钟 | 一般查询数据 |
| 长时缓存 | 3 天 | 成绩、课表等不常变化的数据 |
| 超长缓存 | 7 天 | 校历、培养方案等极少变化的数据 |
• 前端使用 localStorage 缓存(最多 220 条记录,单条最大 180KB)。
• 后端使用 SQLite 数据库持久化缓存(成绩、课表、考试、电费等)。
• 教务系统维护期间自动检测并切换到离线缓存模式。
• 缓存数据标记 offline: true + sync_time 表示为离线数据。
相关文档
当前页面读完后,可以按下面的交叉链接继续。用户文档、开发者文档、故障排查、参考资料和历史文档会互相补充。