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支持任意字符串

使用方法

  1. 点击浏览器菜单 → 设置
  2. 点击"用户代理"设置项
  3. 选择预设UA或输入自定义UA
  4. 点击"应用设置"
  5. 返回浏览器页面自动应用新UA

2. 证书详情显示基础 (Certificate Info Display)

实现内容

  • SiteInfoDialog.ets扩展
    • HTTPS网站显示"安全连接"信息
    • 添加"查看证书详情"按钮
    • 点击按钮显示开发中提示

技术要点

  • 仅对HTTPS网站显示证书信息
  • 区分安全/不安全连接
  • 预留证书详情接口

使用方法

  1. 点击地址栏安全图标
  2. 查看站点信息对话框
  3. HTTPS网站显示证书信息区域
  4. 点击"查看证书详情"按钮

📁 新增文件

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路由

🧪 测试要点

用户代理切换测试

  1. 打开设置 → 用户代理
  2. 选择不同预设UA(Android/iOS/Desktop/iPad)
  3. 输入自定义UA字符串
  4. 应用设置后返回浏览器
  5. 访问网站验证UA是否生效
  6. 测试重置功能

证书信息显示测试

  1. 访问HTTPS网站(如https://www.baidu.com
  2. 点击地址栏安全图标
  3. 验证显示"安全连接"信息
  4. 点击"查看证书详情"按钮
  5. 访问HTTP网站验证不显示证书信息

⚠️ 已知限制

用户代理切换

  • 切换UA后需要刷新页面才能生效
  • 部分网站可能不响应UA变更
  • 自定义UA格式验证较简单

证书信息显示

  • 当前仅显示基础安全信息
  • 实际证书详情获取待实现
  • 需要WebView证书API支持

🚀 后续开发建议

高优先级

  1. 实际证书信息获取

    • 集成WebView证书API
    • 显示证书颁发者、有效期等信息
    • 提供证书导出功能
  2. 用户代理优化

    • UA切换后自动刷新页面
    • 添加UA格式验证
    • 支持更多预设(如搜索引擎爬虫)

中优先级

  1. 代理设置功能

    • HTTP/HTTPS/SOCKS代理支持
    • 代理认证配置
    • 连接测试功能
  2. SSL证书管理

    • 证书信任管理
    • 证书导入/导出
    • 证书错误处理

低优先级

  1. 阅读模式(用户决定暂不开发)
  2. 书签管理优化(文件夹、排序)

📊 功能对比更新

功能 Via浏览器 观澜浏览器 状态
用户代理切换 已实现
证书详情显示 ⚠️ 基础实现
阅读模式 暂不开发
代理设置 待实现
SSL证书管理 待实现
广告拦截 观澜独有

完成度: 2/4 个缺失功能已实现基础版本


🔄 集成说明

用户代理切换集成

  1. 数据流: SettingsPage → UASettingsPage → UserAgentManager → BrowserPage
  2. 状态管理: AppStorage持久化存储
  3. UI更新: 页面返回时自动应用新UA

证书信息显示集成

  1. 条件显示: 仅HTTPS网站显示证书区域
  2. 扩展性: 预留证书详情接口
  3. 用户体验: 渐进式信息展示

📝 使用示例

用户代理切换

// 获取用户代理管理器
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();
}

🎯 下一步行动

立即测试

  1. 构建并运行应用
  2. 测试用户代理切换功能
  3. 验证证书信息显示

后续开发

  1. 实现实际证书信息获取
  2. 添加代理设置功能
  3. 完善SSL证书管理

用户体验优化

  1. UA切换后自动刷新提示
  2. 证书信息详细展示
  3. 设置页面UX优化

📞 技术支持

如有问题,请检查:

  1. 路由配置是否正确(main_pages.json)
  2. UserAgentManager单例是否正确初始化
  3. Web组件.userAgent()是否支持当前API版本
  4. HTTPS网站证书信息显示条件

完成状态: ✅ 第一阶段核心功能已实现
待办事项: 证书详情获取、代理设置、SSL证书管理
风险评估: 低 - 所有修改均为增量功能,不影响现有功能