观澜浏览器开发计划

项目概述

基于 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% 基础实现