QT 应用程序中集成浏览器

QT 应用程序中集成浏览器

前言

在很多情况下,我们需要在应用程序中集成浏览器,比如应用程序界面是使用 H5 页面开发,或者我们的应用程序需要访问 Web 网站。

应用程序中集成浏览器,并不一定是需要一个具有地址栏、多标签等全功能的浏览器,大多数情况下只是需要一个能够现实 H5 页面的浏览器外壳。

在 QT 应用程序中集成浏览器,最简单的方法是使用 QtWebEngine。

QtWebEngine 是 Qt 框架中的一个模块,用于在应用程序中集成现代 Web 技术。它基于 Chromium 开源项目,提供了一个用于显示 Web 内容的浏览器引擎,使开发者能够在他们的 Qt 应用程序中嵌入 Web 内容和功能。QtWebEngine 提供了一个易于使用的 API,开发者可以使用它来创建具有 Web 功能的应用程序,如浏览器、HTML5 游戏、在线帮助系统等。QtWebEngine 允许开发者在应用程序中直接使用 HTML、CSS、JavaScript 等 Web 技术,同时提供了与 Qt 框架的无缝集成,使开发者能够轻松管理和控制 Web 内容的展示和行为。

但是,QtWebEngine 模块基于的 Chromium 版本比较老,并没有随着 Chromium 项目快速迭代。比如我们使用的 Qt 5.15.2 中的 QtWebEngine 模块使用的是 Chromium 78 版本,而最新的 Chromium 版本已经到了 121。大多数情况下我们不需要跟进最新版本,但如果应用程序所访问的网站使用了最新的前端技术,那么 QtWebEngine 可能会出现一些显示异常的问题。

虽然 QtWebEngine 和 Chromium 都是开源的,但这两个项目都相当庞大,要升级到最新的 Chromium 版本,难度和工作量都相当大。

我们还有第二种选择,就是使用 CEF 框架。

CEF (Chromium Embedded Framework) 是一个开源项目,它允许开发者在自己的应用程序中嵌入 Chromium 浏览器引擎。它基于 Google 的 Chromium 项目,提供了一个稳定的、高性能的、现代的浏览器引擎,开发者可以通过 CEF 将其集成到自己的桌面应用程序中。

CEF 的优势之一是它提供了灵活的自定义和扩展性。开发者可以通过添加自定义的 JavaScript 扩展或使用 Chromium 的内置 API 来扩展和定制浏览器的功能。此外,CEF 还提供了一套丰富的 API,用于控制浏览器的行为、处理用户输入、管理 Web 内容等方面。

和 QtWebEngine 不同之处在于,CEF 采用了滚动发布策略,其主要特点包括:

  1. 持续更新: CEF 通过持续不断地将 Chromium 的最新代码集成到其代码库中,实现持续更新。这意味着 CEF 的开发者可以随时访问和使用最新的 Chromium 特性和改进。

  2. 频繁发布: CEF 以较短的周期发布新版本,通常每周或每两周发布一个新版本。这使得开发者能够更快地获得最新的功能、性能改进和安全补丁。

  3. 版本稳定性: 尽管采用了持续更新和频繁发布的策略,CEF 仍然会在每个版本中进行测试和验证,以确保版本的稳定性和可靠性。

  4. 向后兼容: CEF 的滚动发布策略通常会保持向后兼容性,即在新版本中引入的改进和功能不会破坏现有的应用程序或功能。

在 QT 应用程序中集成 CEF,可以获得较新的 Chromium 内核,升级 Chromium 版本也相对容易一些。

相关推荐
暗恋 懒羊羊5 分钟前
Linux 生产者消费者模型
linux·开发语言·ubuntu
安红豆.1 小时前
Linux基础入门 --13 DAY(SHELL脚本编程基础)
linux·运维·操作系统
..空空的人1 小时前
linux基础指令的认识
linux·运维·服务器
penny_tcf1 小时前
Linux基础命令halt详解
linux·运维·服务器
荣世蓥2 小时前
10.2 Linux_进程_进程相关函数
linux·运维·服务器
安全不再安全3 小时前
Linux 安装 yum
linux·运维·centos
水饺编程3 小时前
【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-2
linux·嵌入式硬件·fpga开发
suri ..3 小时前
【Linux】-----进程第二弹(优先级,环境变量)
linux·运维·服务器
Jay-juice4 小时前
Makefile入门
linux·运维·服务器
Maer094 小时前
WSL (Linux)配置 Rust 开发调试环境
linux·运维·rust