大学生查课表要在教务系统、班级群、截图之间来回切换,跨周次、单双周、临时调课的信息很难同步;市面上的课表 App 又普遍要求注册账号、把数据上传到服务器。本项目面向教育校园场景,做一个不注册、不联网也能用的课表工具:数据只存在本机,支持从教务导出的 PDF 一键导入,并封装成 Android / 鸿蒙 双端应用装到手机上,解决"查课、记教室、看下节课还有多久"的高频刚需。
点击空白处退出提示
语言技术
Java、HTML5、JavaScript、ArkTS、HarmonyOS系统类型
Android应用、HarmonyOS应用行业分类
教育校园
大学生查课表要在教务系统、班级群、截图之间来回切换,跨周次、单双周、临时调课的信息很难同步;市面上的课表 App 又普遍要求注册账号、把数据上传到服务器。本项目面向教育校园场景,做一个不注册、不联网也能用的课表工具:数据只存在本机,支持从教务导出的 PDF 一键导入,并封装成 Android / 鸿蒙 双端应用装到手机上,解决"查课、记教室、看下节课还有多久"的高频刚需。
1. 课表导入:解析教务系统导出的 PDF,自动识别课程、周次、单双周、连堂,
导入后一键套用。
2. 周视图:按周展示课程卡片,左右切周、"回到本周",按学科自动配色。
3. 下节课提醒:底部常驻显示下一节课的时间、地点、教师与倒计时。
4. 离线可用:Service Worker 缓存全部资源,断网也能正常打开。
5. 数据迁移:导出/导入分享码,换设备不用重新录。
6. 个性化:节次时间、卡片圆角、深色模式可调。
独立完成产品设计、Android / 鸿蒙双端封装与前端开发。
技术栈:Java(Android)+ ArkTS(HarmonyOS)+ HTML/CSS/JavaScript
(无框架、无后端)。
实现要点:
1. Android 端没有用常规的 WebView 加载本地文件,而是在应用内用
ServerSocket 起一个本地 HTTP 服务,把内置资源以 127.0.0.1 的
地址提供出去:既绕开 file:// 协议对 fetch 和 Service Worker 的
限制,又保证完全离线、不连外网;
2. 自实现静态资源的 MIME 响应与流式输出,大文件不占内存;
3. 自定义 WebChromeClient,接管 onShowFileChooser 打通"从 PDF
导入课表"的文件选择链路,并重写 JS 的 alert/confirm/prompt 为
原生对话框,避免默认样式与页面风格割裂;
4. 处理返回键导航、横竖屏切换的 WebView 状态保存与恢复,退出时
主动销毁 WebView 防止内存泄漏;
5. 鸿蒙端用 ArkWeb 的 Web 组件加载 resources/rawfile 下的整包
站点,配合 domStorageAccess 让 localStorage 持久化生效,并做
沉浸式状态栏;
6. 前端数据全部存于 localStorage、不上传服务器;PDF 导入基于
pdf.js 按文本坐标还原课程块;分享码经 deflate-raw + base64url
压缩,16 门课从 784 字符压到 200 出头。





评论