# Hua.Todo 产品需求文档 (PRD) v1.1.0 ## 1. 项目概述 本项目是一个基于 MAUI + WebView 架构开发的跨平台代办管理应用 (Hua.Todo)。旨在提供轻量、高效的任务管理体验,特别是通过快捷键快速唤起记录功能,最大化用户的操作效率。v1.1.0 版本将实现跨平台支持,覆盖 Windows、macOS、Android、iOS 和 Linux(预览)平台。 ## 2. 技术架构 ### 2.1 整体架构 - **开发语言**: C# (后端) + Vue.js (前端) - **UI 框架**: MAUI (Multi-platform App UI) + WebView - **目标框架**: .NET 10 - **前端框架**: Vue.js - **WebView 实现**: - Windows: WebView2 (微软官方,完美兼容) - macOS: WKWebView - Android: WebView - iOS: WKWebView - Linux: WebView (预览) ### 2.2 支持平台 - **Windows**: 完整支持 - **macOS**: 完整支持 - **Android**: 完整支持 - **iOS**: 完整支持 - **Linux**: 预览支持 ### 2.3 架构分层 ``` ┌─────────────────────────────────────┐ │ Vue.js 前端界面 │ │ (跨平台统一的用户界面) │ └─────────────────────────────────────┘ ↕ ┌─────────────────────────────────────┐ │ WebView 容器层 │ │ (WebView2/WKWebView/WebView) │ └─────────────────────────────────────┘ ↕ ┌─────────────────────────────────────┐ │ MAUI 原生层 │ │ (平台特定功能封装) │ └─────────────────────────────────────┘ ↕ ┌─────────────────────────────────────┐ │ C# 业务逻辑层 │ │ (数据处理、状态管理) │ └─────────────────────────────────────┘ ``` ## 3. 功能需求 ### 3.1 核心功能:快速记录 (Quick Entry) - **全局快捷键**: - Windows: 允许用户注册/使用系统级全局快捷键(例如 `Ctrl + Alt + A`) - macOS: 支持系统级快捷键(例如 `Cmd + Option + A`) - 移动端: 通过通知快捷方式或小组件实现快速记录 - 支持在应用后台运行时响应快捷键 - **快速唤起**: - 按下快捷键时,若应用最小化或隐藏,应立即弹出"新建任务"窗口或主界面 - 窗口弹出后,输入框应自动获取焦点,用户可直接打字 ### 3.2 任务模型 (Task Model) 每个任务需包含以下核心字段: 1. **任务名称 (Title/Content)**: 任务的具体描述 2. **紧急程度 (Priority/Urgency)**: - 用于区分任务优先级(如:高、中、低) - 需在界面上有直观的视觉区分(如颜色标记) 3. **完成状态 (IsCompleted)**: - 标记任务是否已完成 ### 3.3 任务列表与视图 (Task List & View) - **列表展示**: 展示当前所有未完成的任务 - **默认过滤**: - 应用启动或刷新时,**默认隐藏已完成的任务** - (可选) 提供"显示已完成任务"的切换开关以便查看历史记录 ### 3.4 离线与同步 (Offline & Sync) - **离线记录**: 支持完全离线使用,数据优先保存于本地 - **数据同步**: 在网络可用时(或特定时机),自动将本地数据同步到服务端(预留同步机制) ### 3.5 跨平台适配需求 - **响应式设计**: Vue.js 界面需适配不同平台的屏幕尺寸和分辨率 - **平台特定功能**: - Windows: 利用 WebView2 特性,如文件访问、剪贴板等 - macOS: 遵循 macOS 设计规范 - 移动端: 支持触摸手势、通知等移动端特性 - **原生功能集成**: - 通过 MAUI 调用平台原生 API - WebView 与 C# 代码的双向通信 ### 3.6 UI设计原则 - **紧凑设计**: UI界面需采用紧凑布局,减少不必要的留白和装饰元素,最大化信息展示空间 - **高信息密度**: 在有限的屏幕空间内展示更多任务信息,提高用户浏览效率 - **简洁高效**: 去除冗余的视觉元素,聚焦核心功能,让用户快速完成操作 - **紧凑列表**: 任务列表项应采用紧凑的行高和间距,支持在单屏内显示更多任务 - **精简控件**: 使用紧凑的按钮、图标和输入框,减少控件占用的空间 - **高效布局**: 采用合理的网格或弹性布局,充分利用屏幕空间,避免大面积空白 ## 4. 非功能需求 - **性能**: - 启动速度快,快捷键响应低延迟 - WebView 加载性能优化 - **持久化**: - 任务数据需保存到本地(如 SQLite, JSON, 或 XML) - 保证关闭应用后数据不丢失 - **跨平台一致性**: - 各平台功能体验保持一致 - UI 界面风格统一 - **兼容性**: - Windows: WebView2 运行时要求 - macOS: 系统版本要求 - 移动端: Android/iOS 最低版本要求 ## 5. 技术实现要点 ### 5.1 WebView 通信机制 - **C# → Vue**: 通过 HTTP API 接口提供数据 - **Vue → C#:** 通过 HTTP 请求调用 C# 后端接口 - **数据序列化**: 使用 JSON 格式进行数据交换 - **本地服务器**: C# 后端启动本地 HTTP 服务器(如 Kestrel) - **跨域处理**: 配置 CORS 支持跨域请求 - **API 设计**: RESTful API 设计风格 ### 5.2 平台特定实现 - **Windows**: - 使用 `Microsoft.Web.WebView2.Wpf` 或 MAUI 的 WebView2 控件 - 全局快捷键使用 Windows API - **macOS**: - 使用 `WKWebView` - 全局快捷键使用 AppKit API - **移动端**: - 使用平台原生 WebView - 快速记录通过通知快捷方式实现 ### 5.3 构建与部署 - **统一构建**: 使用 MAUI 单一项目构建多平台应用 - **平台特定配置**: 针对不同平台的配置文件和资源管理 - **CI/CD**: 支持多平台的自动化构建和发布流程 ## 6. 版本规划 ### 6.1 v1.1.0 目标 - [ ] 完成 MAUI + WebView 架构搭建 - [ ] 实现 Windows 平台支持(基于 WebView2) - [ ] 实现 macOS 平台支持 - [ ] 实现移动端基础支持 - [ ] Vue.js 前端界面开发 - [ ] C# 后端业务逻辑实现 - [ ] WebView 与 C# 通信机制实现 - [ ] 跨平台功能测试 ### 6.2 后续版本 - **v1.2.0**: Linux 平台正式支持 - **v1.3.0**: 云同步功能完善 - **v1.4.0**: 高级功能(如标签、提醒等) ## 7. 风险与挑战 - **WebView 兼容性**: 不同平台 WebView 实现的差异可能导致兼容性问题 - **性能优化**: WebView 方案相比原生方案可能存在性能开销 - **开发复杂度**: 跨平台开发增加了测试和维护的复杂度 - **平台限制**: 某些平台对 WebView 功能的限制可能影响功能实现