框架:WebKit 与 WebEngine
从 2007 年到第 3 版,曾经有 Qt WebKit。根据这个 Qt 博客和这里它被新的基于 Chromium 的 Web 引擎取代,即 Qt WebEngine。根据链接 Qt WebKit 现在可以正常工作,并且在未来几年将继续这样做,但是如果您想为您的应用程序或设备提供所有最新和最强大的 HTML5 功能,您应该考虑转移到 Qt WebEngine .
正如这篇博客所说:Qt 5.4 还包含旧的 Qt WebKit 模块。 Qt WebKit 仍受支持,但从 Qt 5.4 开始,我们认为它已完成,因此不会向其中添加新功能。我们还计划在未来的版本中弃用 Qt WebKit,因为新的 Qt WebEngine 提供了所需的功能。在
我的决定:我更喜欢使用最新的QtWebEngine,特别是在我处于初始阶段的时候。如果我碰壁了,那么也许我会恢复使用 Qt WebKit。
QML:WebView 与 WebEngineView。
对于 QML 中的浏览器项目,有两个项目 WebView 和 WebEngineView。
WebKit 和 WebEngine 都定义了同名的 WebView。 WebKit 中的 WebView 文档在这里。它应该有导入 QtWebKit 3.0。
为了使用本文档中提到的绑定到 WebEngine 的 WebView,我们需要进行此导入:import QtWebView 1.0。但是我们很可能会遇到错误 #5 和 #6,调试的解决方案是链接中的状态。
我将使用后者的 WebView,即 WebEngine 提供的那个。它与 WebEngnie 相关的证据是错误 #5 和 #6 的调试解决方案。从现在开始,WebView 指的是本文档中 WebEngine 提供的。
正如这篇博客所说:在 Qt 5.4 中,提供了 Qt WebView,它提供了一个更有限的 API 来嵌入底层操作系统的原生 Web 浏览器,用于不需要完整 Qt WebEngine 的用例,或者由于来自底层操作系统的限制,它无法使用。在 Qt 5.4 中,Qt WebView 模块支持 iOS 和 Android。它支持将底层操作系统的原生 Web 引擎嵌入到 Qt 中,目前可用于 Android 和 iOS。正因为如此,Qt WebView 也为简单的 Web 文档集成提供了一个方便的轻量级解决方案。
WebEngineView 允许 QML 应用程序呈现动态 Web 内容的区域。 WebEngineView 组件可以与其他 QML 组件共享屏幕或包含 QML 应用程序中指定的全屏。这是我在不会在 iOS 和 Android 中执行的应用程序中的选择。
注意:根据这篇博客,QtWebView 将尽可能使用 QtWebEngine。与此同时,他们通过 WebView 使更多平台成为可能。作为对 QT-Bug 的回复,它还提到:虽然我们没有针对 OS X、Window 等的原生 WebView 实现,但我们可以回退到使用 QtWebEngine
我的决定:非 Android 和 iOS 应用程序中的 WebEngineView。