我很难理解不同版本的 WebKit、WebKitGTK、GTK 是什么。这是我到目前为止所拥有的:
WebKit 是一个包含 WebKit1 和 WebKit2 的库。用这个 include 调用哪一个
#include <webkit/webkit.h>
?WebKitGTK 1.10.2 是最后一个依赖 GTK2 的版本。它是否仍在维护/开发?
它是否总是需要 GTK、Qt 或其他工具包支持?还是可以单独使用?
您必须区分版本号和 api 级别。
1.10.2
或2.2.1
- 仅此而已,只是版本号 - 它与 GTK 版本或 api 级别无关。webkit/webkit.h
) 和 webkit2 ( webkit2/webkit2.h
)。主要区别在于 webkit2 使用多进程架构进行渲染、javascript 和插件,而不是 webkit 的单进程架构。WebKitGTK+ 可以针对 GTK+2 或 GTK+3 进行编译。这将导致库文件名分别像libwebkitgtk-1.0.so
或libwebkitgtk-3.0.so
。(这与 WebKit 本身的版本无关。)但是,webkit2 api 依赖于 GTK+3,库文件名类似于libwebkit2gtk-3.0.so
.
WebKitGTK+ 和其他端口实现了类似的东西:
如果你想避免任何可用的 webkit 端口,你需要自己实现这一切。
PS:WebKitGTK+ 2.xx 仍然支持 GTK+2
WebKitGTK 是一个“端口”,是的,您实际上确实需要从几个端口中选择一个,单独使用 webkit 基本上意味着编写自己的端口,这是一项艰巨的工作。在 linux 上,我建议使用 WebKitGTK 或 QtWebKit。
WebKit 和 WebKit2 是两个完全不同的 Web 引擎 API,它们碰巧存在于同一个源代码树中(整体上也称为 WebKit)并使用相同的核心组件。最大的不同是 WebKit2 将 Web 内容处理拆分为不同的过程——我相信它也是唯一一个正在进行认真开发的过程。您实际上不需要在这两者之间进行选择,因为端口通常已经做出了选择:您只需使用端口提供的 API。GTK+ 端口曾经在 Webkit 上,但现在应该使用 WebKit2(但 Webkit API 现在可能仍然存在)。
如果 1.10.2 真的是支持 GTK2 的最后一个版本(请注意,我不知道这是不是真的),那么我相当肯定它不会被进一步开发。
编辑:在 debian 上,库选项是:
所以看起来 GTK+ 2 至少在某种程度上仍然受到支持,但是(至少在 debian 上)你只能获得带有 GTK+ 3 的 WebKit2 API。该选项应该是最面向未来的。
WebKit 的唯一 Linux 端口是 WebKit2-GTK3。所有其他人都死了,没有收到安全更新,这使它们成为黑客的微不足道的目标。如果您的应用程序依赖于 Linux 上其他版本的 WebKit,请将其卸载。故事结局。
是的,WebKit2 API 没有那么强大。那是无关紧要的。如果您被困在 WebKit1 上,请放弃它,然后: