Via浏览器功能差异 - 实现总结
完成时间: 2026-05-22
状态: 第一阶段完成
✅ 已实现功能
1. 用户代理切换 (User Agent Switching)
实现内容
-
UserAgentManager.ets - 用户代理管理器
- 预设UA列表(Android、iOS、Desktop、iPad、Custom)
- 设置持久化存储
- 单例模式管理
-
UASettingsPage.ets - 用户代理设置页面
- 预设UA选择(单选按钮)
- 自定义UA输入框
- 应用/重置功能
- 返回按钮集成
-
SettingsPage.ets集成
- 添加"用户代理"设置项
- 点击跳转到UASettingsPage
-
BrowserPage.ets集成
- 添加userAgent状态管理
- Web组件.userAgent()设置
- 页面显示时自动应用UA设置
技术要点
- 使用AppStorage持久化UA设置
- Web组件支持.userAgent()属性
- 预设UA涵盖主流设备类型
- 自定义UA支持任意字符串
使用方法
- 点击浏览器菜单 → 设置
- 点击"用户代理"设置项
- 选择预设UA或输入自定义UA
- 点击"应用设置"
- 返回浏览器页面自动应用新UA
2. 证书详情显示基础 (Certificate Info Display)
实现内容
- SiteInfoDialog.ets扩展
- HTTPS网站显示"安全连接"信息
- 添加"查看证书详情"按钮
- 点击按钮显示开发中提示
技术要点
- 仅对HTTPS网站显示证书信息
- 区分安全/不安全连接
- 预留证书详情接口
使用方法
- 点击地址栏安全图标
- 查看站点信息对话框
- HTTPS网站显示证书信息区域
- 点击"查看证书详情"按钮
📁 新增文件
src/main/ets/
├── managers/
│ └── UserAgentManager.ets # 用户代理管理器
├── pages/
│ └── UASettingsPage.ets # 用户代理设置页面
🔧 修改文件
src/main/ets/
├── pages/
│ ├── BrowserPage.ets # 添加userAgent状态和设置
│ └── SettingsPage.ets # 添加用户代理设置入口
├── components/
│ └── SiteInfoDialog.ets # 添加证书信息显示
└── resources/base/profile/
└── main_pages.json # 添加UASettingsPage路由
🧪 测试要点
用户代理切换测试
- 打开设置 → 用户代理
- 选择不同预设UA(Android/iOS/Desktop/iPad)
- 输入自定义UA字符串
- 应用设置后返回浏览器
- 访问网站验证UA是否生效
- 测试重置功能
证书信息显示测试
- 访问HTTPS网站(如https://www.baidu.com)
- 点击地址栏安全图标
- 验证显示"安全连接"信息
- 点击"查看证书详情"按钮
- 访问HTTP网站验证不显示证书信息
⚠️ 已知限制
用户代理切换
- 切换UA后需要刷新页面才能生效
- 部分网站可能不响应UA变更
- 自定义UA格式验证较简单
证书信息显示
- 当前仅显示基础安全信息
- 实际证书详情获取待实现
- 需要WebView证书API支持
🚀 后续开发建议
高优先级
-
实际证书信息获取
- 集成WebView证书API
- 显示证书颁发者、有效期等信息
- 提供证书导出功能
-
用户代理优化
- UA切换后自动刷新页面
- 添加UA格式验证
- 支持更多预设(如搜索引擎爬虫)
中优先级
-
代理设置功能
- HTTP/HTTPS/SOCKS代理支持
- 代理认证配置
- 连接测试功能
-
SSL证书管理
- 证书信任管理
- 证书导入/导出
- 证书错误处理
低优先级
- 阅读模式(用户决定暂不开发)
- 书签管理优化(文件夹、排序)
📊 功能对比更新
| 功能 | Via浏览器 | 观澜浏览器 | 状态 |
|---|---|---|---|
| 用户代理切换 | ✅ | ✅ | 已实现 |
| 证书详情显示 | ✅ | ⚠️ | 基础实现 |
| 阅读模式 | ✅ | ❌ | 暂不开发 |
| 代理设置 | ✅ | ❌ | 待实现 |
| SSL证书管理 | ✅ | ❌ | 待实现 |
| 广告拦截 | ❌ | ✅ | 观澜独有 |
完成度: 2/4 个缺失功能已实现基础版本
🔄 集成说明
用户代理切换集成
- 数据流: SettingsPage → UASettingsPage → UserAgentManager → BrowserPage
- 状态管理: AppStorage持久化存储
- UI更新: 页面返回时自动应用新UA
证书信息显示集成
- 条件显示: 仅HTTPS网站显示证书区域
- 扩展性: 预留证书详情接口
- 用户体验: 渐进式信息展示
📝 使用示例
用户代理切换
// 获取用户代理管理器
const uaManager = UserAgentManager.getInstance();
// 设置预设UA
uaManager.setPresetUA('Desktop');
// 设置自定义UA
uaManager.setCustomUA('Mozilla/5.0 (Custom)');
uaManager.setPresetUA('Custom');
// 获取当前UA
const currentUA = uaManager.getCurrentUAString();
证书信息显示
// 在SiteInfoDialog中
if (this.isSecure && this.url.startsWith('https://')) {
// 显示证书信息区域
this.showCertificateSection();
}
🎯 下一步行动
立即测试
- 构建并运行应用
- 测试用户代理切换功能
- 验证证书信息显示
后续开发
- 实现实际证书信息获取
- 添加代理设置功能
- 完善SSL证书管理
用户体验优化
- UA切换后自动刷新提示
- 证书信息详细展示
- 设置页面UX优化
📞 技术支持
如有问题,请检查:
- 路由配置是否正确(main_pages.json)
- UserAgentManager单例是否正确初始化
- Web组件.userAgent()是否支持当前API版本
- HTTPS网站证书信息显示条件
完成状态: ✅ 第一阶段核心功能已实现
待办事项: 证书详情获取、代理设置、SSL证书管理
风险评估: 低 - 所有修改均为增量功能,不影响现有功能