654 字
3 分钟
我要重构小绿伞啦

2006年,我开发了一个未成年人健康上网的软件。
那时,360还叫奇虎安全卫士…
可那时,我才13岁…
🎉 已完成功能
一、核心模块
1. 过滤数据管理器 (filterDataManager.js
)
- ✅ 关键词黑名单管理
- ✅ 域名黑名单管理
- ✅ 域名白名单管理
- ✅ 拦截日志记录
- ✅ 数据持久化存储
- ✅ 统计信息
- ✅ 数据导入导出
2. 浏览器标题监控 (browserTitleMonitor.js
)
- ✅ 定期检查浏览器窗口标题(Chrome/Edge)
- ✅ 关键词匹配检测
- ✅ 自动关闭违规进程
- ✅ 可配置检查间隔(默认3秒)
- ✅ 拦截日志记录
3. 拦截器管理器 (interceptorManager.js
)
- ✅ 两种拦截模式管理
- ✅ 模式切换功能
- ✅ 启动/停止控制
- ✅ 配置持久化
- ✅ 首次设置向导
4. 浏览器扩展 (src/extension/
)
- ✅ Chrome/Edge 扩展支持
- ✅ URL拦截(域名黑名单 + 关键词)
- ✅ 标题检测
- ✅ 内容检测(可选)
- ✅ 拦截页面UI
- ✅ 扩展弹出窗口
- ✅ 本地规则存储
二、拦截模式
模式1:浏览器标题监控 ⭐
优点:
- 不需要安装扩展
- 自动工作
- 实现简单
缺点:
- 有延迟(3秒检查间隔)
- 只能关闭进程,无法显示拦截页面
- 用户可能短暂看到内容
适用场景:
- 不想安装扩展的用户
- 对拦截延迟要求不高的场景
模式2:浏览器扩展 ⭐⭐⭐(推荐)
优点:
- 实时拦截,无延迟
- 可以显示拦截页面
- 可以检查URL、标题、内容
- 白名单功能
缺点:
- 需要手动安装扩展
- 用户可能禁用扩展
适用场景:
- 需要精确拦截的用户
- 愿意安装扩展的用户
三、IPC通信接口
已在 src/main/index.js
和 src/main/preload.js
中实现完整的API:
拦截器管理API
window.electronAPI.interceptor.getStatus()window.electronAPI.interceptor.setMode(mode)window.electronAPI.interceptor.start()window.electronAPI.interceptor.stop()window.electronAPI.interceptor.getRunningBrowsers()// ... 等
过滤数据管理API
window.electronAPI.filter.addKeyword(keyword)window.electronAPI.filter.removeKeyword(keyword)window.electronAPI.filter.addBlockedDomain(domain)window.electronAPI.filter.getBlockLog()window.electronAPI.filter.getStats()// ... 等
📋 待完成功能(前端UI)
虽然后端功能已完成,但前端页面还需要集成:
1. 首次设置向导
- 创建欢迎页面
- 选择拦截模式界面
- 扩展安装引导
2. 控制面板集成
- 显示拦截状态
- 显示今日拦截次数
- 快速启动/停止按钮
3. 内容过滤页面增强
- 关键词管理UI
- 域名黑名单UI
- 域名白名单UI
- 批量导入功能
4. 设置页面
- 拦截模式选择
- 标题监控配置(检查间隔)
- 扩展状态显示
5. 使用报告页面
- 拦截日志列表
- 按时间/原因筛选
- 导出日志功能