跳到正文
历史文档/配置说明

长文档建议按当前分组逐页阅读;右侧辅助栏会保留当前位置和快速操作。

配置

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)150005000 - 60000网络请求的最大等待时间
探针超时(ms)80003000 - 30000功能测速时每个目标的超时时间
电费查询重试20 - 5电费查询失败后的重试次数
空教室查询重试20 - 5空教室查询失败后的重试次数
重试延迟(ms)1000500 - 10000两次重试之间的等待间隔
移动端预览线程31 - 8移动端文件预览的并发数
移动端下载线程41 - 8移动端文件下载的并发数
桌面端预览线程41 - 12桌面端文件预览的并发数
桌面端下载线程61 - 12桌面端文件下载的并发数
云同步冷却(s)18010 - 3600云同步操作的通用冷却时间
上传冷却(s)120120 - 3600云同步上传的最小间隔
下载冷却(s)1010 - 3600云同步下载的最小间隔

功能测速

设置中心提供并发测速功能,可同时测试以下服务的延迟:

OCR 服务
临时上传
云同步
融合门户
教务系统
超星学习通
一卡通
图书馆

测速结果以颜色标记延迟等级:🟢 良好(<500ms)🟡 一般(500-2000ms)🔴 较差(>2000ms 或超时)。

字体设置

字体设置提供 6 种中文字体选择和 3 种 CDN 线路配置。

字体标识来源说明
默认default系统内置使用操作系统默认中文字体
得意黑deyiheiCDN 下载开源免费装饰字体,所有平台可用,推荐下载缓存
黑体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_baseAPI 基础地址(自动配置)
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 模型列表等信息,无需更新客户端即可调整行为。

远程配置拉取流程

  1. 应用启动时,依次尝试以下源获取远程配置:
    • GitCode Raw(国内直连最快)
    • gh-proxy 代理(GitHub 代理)
    • GitHub 直连(海外/VPN 用户)
  2. 成功获取后缓存到本地,后续离线时使用缓存版本。
  3. 如果用户关闭了「启用远程配置」,则跳过拉取,仅使用本地设置。

远程配置字段详解

以下是 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_refKV 命名空间引用名称
timeout_ms超时时间(毫秒)
cooldown_seconds冷却时间(秒)

🤖 ai_models - AI 模型列表

数组格式,每项包含 label(显示名称)和 value(模型标识)。当前默认模型:

Qwen-PlusQwen-MaxDeepSeek-R1Doubao1.5-Pro

📁 resource_share - 资源共享

字段说明
endpointWebDAV 服务地址
username / passwordWebDAV 认证凭据
office_preview_proxyOffice 文件在线预览代理地址
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 环境。

配置到客户端

  1. 方式一(远程配置):修改 remote_config.json 中的 ocr.endpoint 字段。
  2. 方式二(本地覆盖):在应用「设置 → 后端」中手动填写 OCR 服务地址。
💡 注意:
  • OCR 服务仅做验证码文字识别,不涉及用户密码或学号上传。
  • 识别准确率直接影响登录成功率,建议使用针对教务验证码训练过的模型。
  • 客户端支持配置多个 OCR 端点(endpoints 数组),主端点失败后自动使用备用端点。

部署云同步服务(Cloudflare Workers)

云同步服务基于 Cloudflare Workers + KV 实现,用于跨设备同步课表、设置和学业数据。

前置条件

  • Cloudflare 账号(免费即可)
  • Node.js 环境
  • Wrangler CLI 工具

部署步骤

  1. 安装 Wrangler 并登录:
    npm i -g wrangler
    wrangler login
  2. 创建 KV 命名空间:
    # 生产 KV
    wrangler kv namespace create SYNC_KV
    # 预览 KV
    wrangler kv namespace create SYNC_KV --preview
  3. 配置 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"
  4. 设置鉴权令牌(推荐):
    wrangler secret put SYNC_API_TOKEN

    如果不设置,服务将允许匿名访问。

  5. 部署:
    wrangler deploy

    部署后获得 https://<worker-name>.<subdomain>.workers.dev 地址。

  6. 健康检查:
    curl "https://your-worker.workers.dev/sync/ping"
    # 启用了 Token 时:
    curl -H "Authorization: Bearer <TOKEN>" "https://your-worker.workers.dev/sync/ping"

Worker API 接口

接口方法说明
/sync/pingGET健康检查
/sync/uploadPOST上传用户数据(student_id + payload)
/sync/downloadGET下载用户数据(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 表示为离线数据。

推荐阅读路径

相关文档

当前页面读完后,可以按下面的交叉链接继续。用户文档、开发者文档、故障排查、参考资料和历史文档会互相补充。