2013-10-30 124 views
6

我很难理解什么是WebKit,WebKitGTK,GTK与不同的版本。这是我到目前为止:WebKitGTK +,GTK2,GTK3

  • WebKit是一个包含WebKit1和WebKit2的库。哪一个被称为这个包括#include <webkit/webkit.h>

  • WebKitGTK 1.10.2是依赖于GTK2的最后一个版本。它仍然保持/发展?

  • 它是否总是需要GTK,Qt或其他工具包的支持?或者可以单独使用它?

回答

1

WebKitGTK是一个“端口”,是的,你几乎就需要选择几个港口之一,单独使用WebKit的基本意思是写自己的端口,是一个巨大的任务。在Linux上,我会建议使用WebKitGTK或QtWebKit。

WebKit和WebKit2是两个完全不同的Web引擎API,它们碰巧位于同一个源代码树(作为整体也称为WebKit)中,并使用相同的核心组件。最大的区别是WebKit2将网页内容处理分解为不同的流程 - 我相信它也是唯一一个正在发生严重的发展。您并不需要在这两者之间进行选择,因为端口通常已经做出了选择:您只需使用端口提供的API。 GTK +端口曾经在Webkit上,但现在应该使用WebKit2(但Webkit API可能现在仍然存在)。

如果1.10.2真的是支持GTK2的最后一个版本(请注意,我不知道这是否属实),那么我相当肯定它不会被进一步开发。

编辑:在Debian库选项是:

  • libwebkitgtk-1.0 2.2.0:Webkit1,GTK + 2
  • libwebkitgtk-3.0 2.2.0:Webkit1,GTK + 3
  • libwebkit2gtk-3.0 2.2.0:Webkit2,GTK + 3

所以它看起来像GTK + 2仍然至少在某种程度上支持,但(至少在Debian),你只能获得GTK + 3该选项应该是最有前途WebKit2 API -证明。

6

您必须区分版本号和api级别。

  • 版本号是一样的东西1.10.22.2.1 - 仅此而已,只是版本号 - 它没有任何与GTK版本或API级别。
  • 有两种不同的apis:webkit(webkit/webkit.h)和webkit2(webkit2/webkit2.h)。主要区别在于webkit2使用多进程体系结构进行渲染,JavaScript和插件,​​而不是webkit的单一进程体系结构。

WebKitGTK +可以针对GTK + 2或GTK + 3进行编译。这将导致库文件名分别为libwebkitgtk-1.0.solibwebkitgtk-3.0.so。 (这与WebKit本身的版本无关。) 但是,webkit2 api依赖于GTK + 3,并且库文件名类似于libwebkit2gtk-3.0.so

WebKitGTK +和其它端口实现的东西,如:

  • 绘制UI元素(复选框,选择框,...)
  • 对话框(文件选择,下载,HTTP认证)
  • 网络通信(处理DNS和HTTP)
  • ...

您将需要全部由自己来实现这一点,如果你想避免的可用的webkit端口。

PS:WebKitGTK + 2.x.x仍然支持GTK + 2