2013-03-27 165 views
1

我目前正在構建一個SWT應用程序,它必須易於攜帶,並且具有一個簡單的功能齊全的Web瀏覽器。我選擇使用webkit主要是因爲它已經安裝在osx,主要的Linux發行版上,並且可以通過安裝Safari輕鬆安裝在Windows上。SWT瀏覽器WEBKIT的高級功能

我在瀏覽器中添加了基本的功能,您可以使用瀏覽器類(狀態文本,進度條等)明確地執行所有操作,但是添加了必須更直接地進行通信的功能時遇到了麻煩與渲染引擎。

例如,我一直在嘗試添加縮放功能。 SWT頁面上有一個snippet,顯示瞭如何使用Mozilla作爲渲染引擎執行此操作,但它依賴於browser.getWebBrowser()函數,該函數在除mozilla之外的任何引擎時都返回null。

從我所做的搜索中,我發現了一個Webkit到SWT的端口,現在已經停止了,還有一些我已經完成的事情的例子。 Webkit中有沒有類似nsIWebBrowser的對象,我一直無法找到?如果沒有,我猜我最好的選擇是使用mozilla,或者使用javascript自己編寫這些函數並擴展BrowserFunction class

如果我選擇了mozilla,我能夠如何輕鬆地將XLU跑步機與我的最終應用程序打包在一起,以便用戶不必單獨安裝它?如果我選擇webkit,那麼我還沒有找到任何有關使用JavaScript和BrowserFunction類來實現這種功能的優秀文檔。

我也最終必須實現查找,下載,視頻回放和撤銷/重做。你會推薦我去哪個方向?

謝謝你的幫助!

+0

將問題分解爲2:用於Webkit案例和Mozilla案例。您是否檢查過文檔http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fbrowser%2FBrowser.html – 2013-03-29 11:10:41

+0

,你實際上問了3個問題。對於問題,請添加指向此問題URL的鏈接,以幫助您和他人瀏覽和了解上下文/上一個問題。 – 2013-03-29 11:13:45

回答

3

從我已經做了搜索,我找到的WebKit移植到SWT是 現在已經不存在,和一堆我已經做的事情的例子。 是否有任何種類的nsIWebBrowser對象的Webkit我沒有 能夠找到?

如果您正在尋找類似nsIWebBrowser的東西,那麼有。但是你可能會發現這個org.eclipse.swt.internal.webkit.IWebView有點類似。

如果沒有,我猜我最好的選擇是,要麼使用Mozilla,或寫 這些使用JavaScript和擴展 BrowserFunction類自己的功能。

Mozilla的實現有它的根在原始代碼是Mozilla Communicator客戶端代碼,發佈於1998年,而WebKit的執行是由SWT團隊來完成。根據我的經驗,我發現與XULRunner合作有點困難。這個問題通常是由於SWT依賴於特定版本的XULRunner。見SWT FAQ

擴展BrowserFunction可能會很複雜,但您可以試試。

如果讓我選擇我的mozilla是多麼容易將能夠與我的最終應用打包XLU 亞軍,以便用戶不必 單獨安裝呢?

它很容易在啓動應用程序之前捆綁相應的XULRunner並設置正確的系統屬性。請參閱SWT FAQ

如果讓我選擇的WebKit有沒有什麼好的文檔,我一直沒 能夠找到的有關使用JavaScript與BrowserFunction類 實現這種功能。

嗯。不確定。你必須進一步谷歌或等待知道它的人。

我也最終必須實現查找,下載,視頻 回放和撤銷/重做。你會推薦我去哪個方向?

研究org.eclipse.swt.browser.Webkit班及其配套班,如org.eclipse.swt.browser.WebDownloadDelegate

+0

感謝您的回覆,在進一步調查XULrunner之後,我驚訝地發現最新版本是Firefox 3的引擎!這必須超過10歲,我肯定會使用webkit。不幸的是,我不知道如何用你在瀏覽器對象上提到的包調用方法。我也沒有找到文件,只有javadoc找到[swt.internal](http://www.docjar.com/docs/api/org/eclipse/swt/internal/package-index.html)沒有將webkit作爲一個子包。我明天再看看,但現在也許你可以告訴我如何獲得材料來學習? – ekcrisp 2013-03-28 06:06:23

+0

檢查此鏈接http://www.modeliosoft.com/example/javadoc_SWT/org/eclipse/swt/internal/webkit/IWebView.html。例如,SWT中的瀏覽器支持非常依賴於平臺,在Windows上它基於Microsoft COM技術。 SWT做了什麼就是分離出抽象類「WebBrowser」中的基本瀏覽器功能,並根據目標OS本地瀏覽器包裝器進行編寫。它純粹是深入挖掘SWT代碼,但要小心,爲其中一個OS編寫的功能可能不適用於其他! – Favonius 2013-03-28 06:25:21