2013-10-30 127 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