qt android webengine,关于qt:QWebView或QWebEngineView

QWebView和QWebEngineView之间在功能上有什么区别吗? 如果我理解正确,则QWebView是webkit,而QWebEngineView闪烁。 程序员有什么区别吗? 一个是否比另一个提供更多的外观定制?

答案实际上取决于您是否关心前向兼容性-Qt将来会在某个时候放弃WebKit支持。

是否有时间表? 像5.5还是要指定?

根据Qt 5.4发行公告,WebKit支持将在5.5中弃用,并且不会添加任何新功能。 实际上,它不可能在Qt 6之前将其完全删除,因为这(显然)会破坏二进制兼容性。

在我看来,当定位iOS或Android时,QWebView是唯一的选择,并且QWebEngineView仅在台式机上可用。 这个对吗?

我投赞成票,因为两者之间存在显着差异,因此,差异列表不是基于意见的,仍然非常有用。

我会尝试一下QtWebEngine。由于某种原因,它取代了QtWebKit。

如果您控制要呈现的HTML,那么使用QWebKit可能不会受到伤害。只需确保事先测试您的页面即可。

QWebView使用WebKit作为后端。

http://doc.qt.io/qt-5/qwebview.html#details

QWebEngineView使用Chromium作为后端。

http://doc.qt.io/qt-5/qwebengineview.html#details

WebKit是Linux和Rekonq上Konqueror中使用的工具。在我看来,这还不错,但在一般的(通常是不完美的)网页/ html中却不那么强大。

铬是一种更新得多,速度更快且功能更强大的引擎。

我不完全了解所有技术细节,但是QWebEngine是朝正确方向迈出的一大步。我主要是通过自己的实验和经验发现发现了这一点。

要尝试WebKit,请查看此项目并尝试各种页面:

http://qtweb.net/

https://github.com/magist3r/QtWeb

这是有关QtWebEngine v QtWebKit的更多信息

http://wiki.qt.io/QtWebEngine

http://en.wikipedia.org/wiki/WebKit

http://wiki.qt.io/QtWebKit

QtWebKit在Qt 5.5中已被弃用:wiki.qt.io/New-Features-in-Qt-5.5#Deprecated_Functionality

对我来说,我看不到QWebEngineView中的一些非常重要的功能。首先,您无法访问页面上的所有框架,也无法在所有框架中运行JS。下一个是您不能将QNetworkAccessManager用于控件视图下划线层。因此,到目前为止,我看不到某些问题的任何解决方案,例如,如何在自定义应用程序中禁用Flash Player上的声音? 。我想相信可以通过某种方式解决它,因为QWebEngineView的运行速度更快,并且看上去它没有QWebView的内存泄漏问题(或更少)。

多数民众赞成在一个好点..但由于qtwebkit将被弃用,我看不到这里还有其他选择:/如果我找到解决方案,请让我知道

框架:WebKit与WebEngine

自2007年以来,一直存在Qt WebKit,直到版本3。据此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提供的WebView。与WebEngnie相关的证明是错误5和6的调试解决方案。从现在开始,WebView指的是WebEngine在本文档中提供的内容。

如本博客所述:在Qt 5.4中,提供了Qt WebView,它提供了更为有限的API来嵌入基础操作系统固有的Web浏览器,以用于不需要完整Qt WebEngine或可以使用完整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。