观澜浏览器开发计划
项目概述
基于 Via 浏览器 APK 分析结果,为观澜浏览器实现完整的浏览器功能。
功能模块规划
Phase 1: 核心功能基础 (优先级: ⭐⭐⭐)
1.1 书签管理
- 书签数据模型设计
- 书签存储服务 (Preferences)
- 书签列表页面 UI
- 添加/编辑/删除书签
- 书签文件夹分类
- 书签导入/导出
1.2 多标签页管理
- 标签页数据模型
- 标签页状态管理
- 标签切换器 UI 组件
- 新建/关闭标签页
- 标签页预览功能
1.3 更多菜单系统
- 菜单组件设计
- 刷新/停止加载
- 后退/前进导航
- 分享功能
- 页面查找
- 设置入口
Phase 2: 用户体验增强 (优先级: ⭐⭐)
2.1 夜间模式
- 主题切换逻辑
- CSS 注入实现
- 跟随系统主题
- 主题状态持久化
2.2 阅读模式
- Readability 算法移植
- 阅读模式 UI
- 字体/背景自定义
- 翻页导航
2.3 广告拦截
- 过滤规则加载
- URL 匹配引擎
- 规则更新机制
- 拦截统计显示
2.4 下载管理
- 下载服务实现
- 下载列表 UI
- 下载进度显示
- 文件管理集成
Phase 3: 高级功能 (优先级: ⭐)
3.1 用户代理切换
- UA 预设列表
- 自定义 UA 输入
- 桌面/移动模式切换
3.2 历史记录
- 历史数据存储
- 历史列表 UI
- 搜索历史
- 清除历史
3.3 设置中心
- 设置页面 UI
- 主页设置
- 搜索引擎选择
- JavaScript 开关
- Cookie 设置
- 缓存管理
3.4 隐私安全
- 证书错误处理
- 隐私模式
- 数据清除
技术架构
目录结构
src/main/ets/
├── common/ # 公共模块
│ ├── constants/ # 常量定义
│ ├── utils/ # 工具函数
│ └── components/ # 公共组件
├── models/ # 数据模型
│ ├── Bookmark.ets
│ ├── Tab.ets
│ ├── DownloadItem.ets
│ └── HistoryItem.ets
├── services/ # 服务层
│ ├── BookmarkService.ets
│ ├── TabService.ets
│ ├── DownloadService.ets
│ ├── HistoryService.ets
│ └── AdBlockService.ets
├── pages/ # 页面
│ ├── Index.ets # 主页
│ ├── BookmarkPage.ets
│ ├── HistoryPage.ets
│ ├── DownloadPage.ets
│ └── SettingsPage.ets
├── components/ # 业务组件
│ ├── TabSwitcher.ets
│ ├── BrowserMenu.ets
│ ├── SearchBar.ets
│ ├── UrlBar.ets
│ └── BottomNav.ets
└── viewmodels/ # 视图模型
├── BrowserViewModel.ets
└── BookmarkViewModel.ets
状态管理
- 使用
@State管理组件内部状态 - 使用
@Provide/@Consume跨组件共享状态 - 使用
AppStorage全局状态持久化
数据存储
- 用户偏好:
@ohos.data.preferences - 书签/历史:
@ohos.data.rdb(关系型数据库) - 缓存数据:
@ohos.file.fs
开发里程碑
| 阶段 | 目标 | 预计时间 |
|---|---|---|
| M1 | 书签管理 + 更多菜单 | Week 1 |
| M2 | 多标签页 + 底部导航 | Week 2 |
| M3 | 夜间模式 + 设置页面 | Week 3 |
| M4 | 阅读模式 + 广告拦截 | Week 4 |
| M5 | 下载管理 + 历史记录 | Week 5 |
| M6 | UA切换 + 隐私功能 | Week 6 |
当前状态
开发阶段: Phase 3 - 高级功能 (已完成) 当前任务: 无 完成进度: 100%
实现状态总览
✅ 已完成 (100%)
| 模块 | 文件 | 状态 |
|---|---|---|
| 书签模型 | Bookmark.ets | ✅ 完成 |
| 书签管理器 | BookmarkManager.ets | ✅ 完成 (含完整 CRUD) |
| 书签页面 | BookmarkPage.ets | ✅ 完成 |
| 标签页模型 | BrowserTab.ets | ✅ 完成 |
| 标签页管理器 | TabManager.ets | ✅ 完成 |
| 标签页页面 | TabManagerPage.ets | ✅ 完成 |
| 历史模型 | HistoryItem.ets | ✅ 完成 |
| 历史管理器 | HistoryManager.ets | ✅ 完成 (含完整 CRUD) |
| 历史页面 | HistoryPage.ets | ✅ 完成 |
| 下载模型 | DownloadItem.ets | ✅ 完成 |
| 下载管理器 | DownloadManager.ets | ✅ 完成 |
| 下载页面 | DownloadPage.ets | ✅ 完成 |
| 设置管理器 | SettingsManager.ets | ✅ 完成 |
| 设置页面 | SettingsPage.ets | ✅ 完成 |
| 浏览器页面 | BrowserPage.ets | ✅ 完成 |
| 更多菜单 | BrowserMenu.ets | ✅ 完成 |
| 页面查找 | FindInPage.ets | ✅ 完成 |
| 主题管理器 | ThemeManager.ets | ✅ 完成 |
| 广告拦截管理器 | AdBlockManager.ets | ✅ 完成 |
| 广告拦截统计 | AdBlockStats.ets | ✅ 完成 |
更新日志
2026-05-21 (最终)
- ✅ 完善 BookmarkManager 数据库 CRUD 操作
- ✅ 完善 HistoryManager 数据库 CRUD 操作
- ✅ 实现书签导入导出功能
- ✅ 实现历史记录分组查询
- 进度: 100% 完成 🎉
2026-05-21
- ✅ 创建 AdBlockManager.ets 广告拦截管理器
- ✅ 实现 50+ 内置过滤规则
- ✅ 实现 URL 匹配引擎
- ✅ 创建 AdBlockStats.ets 统计组件
- 进度: 85% 完成
2026-05-21
- ✅ 创建 BrowserMenu.ets 更多菜单组件
- ✅ 创建 FindInPage.ets 页面查找组件
- ✅ 更新 BrowserPage.ets 集成新组件
- ✅ 实现页面路由导航
- ✅ 创建 ThemeManager.ets 主题管理器
- 进度: 75% 完成
2026-05-21
- 完成 APK 反编译分析
- 创建开发计划文档
- 规划功能模块和里程碑
- 审查现有代码: 发现项目已有 60% 基础实现