翻譯|對比評測|編輯:吉煒煒|2024-12-20 09:46:37.670|閱讀 123 次
概述:當您需要在 SWT 應用程序中顯示 Web 內(nèi)容時,通常有兩種選擇:內(nèi)置瀏覽器小部件或像 JxBrowser 這樣的商業(yè)選項?本文分析了兩者之間的差異,并幫助您根據(jù)自己的需求選擇合適的解決方案。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
JxBrowser是一個跨平臺的 JVM 庫,它允許您將基于 Chromium 的 Browser 控件集成到 Compose、Swing、JavaFX、SWT 應用程序中,并使用 Chromium 的數(shù)百種功能。
當您需要在 SWT 應用程序中顯示 Web 內(nèi)容時,通常有兩種選擇:內(nèi)置瀏覽器小部件或像 JxBrowser 這樣的商業(yè)選項。本文分析了兩者之間的差異,并幫助您根據(jù)自己的需求選擇合適的解決方案。
簡而言之
內(nèi)置Browser小部件簡單但功能強大,使用操作系統(tǒng)提供的瀏覽器引擎。選擇Browser以下情況:
JxBrowser 是基于 Chromium 的高級商業(yè) Web 視圖控件。在以下情況下選擇 JxBrowser:
嵌入
鑒于該Browser小部件是 SWT 的一部分,因此可以很容易地將其嵌入到您的應用程序中:
var browser = new Browser(shell, SWT.NONE); browser.setUrl("http://example.com");
使用 JxBrowser,您必須首先將依賴項添加到項目中。根據(jù)您的構(gòu)建系統(tǒng),您可以使用Maven 工件、將 JAR 文件添加到類路徑或創(chuàng)建 獨立的 Eclipse 插件。
一旦添加了庫,嵌入看起來如下所示:
var engine = Engine.newInstance(HARDWARE_ACCELERATED); var browser = engine.newBrowser(); var browserView = BrowserView.newInstance(shell, browser); browser.navigation().loadUrl("http://example.com");
瀏覽器引擎
標準小部件工具包的最初想法是提供一種感覺與操作系統(tǒng)原生相同的用戶體驗。為了實現(xiàn)這一點,SWT 使用操作系統(tǒng)提供的小部件,而不是像其他工具包通常那樣創(chuàng)建自己的小部件集。
因此,SWT 中的每個小部件都是本機對應部件的包裝器。工具包為您提供了使用小部件的 API,但操作系統(tǒng)負責處理渲染、可訪問性、焦點管理和其他事項。Browser 小部件也以這種方式工作。
是Browser操作系統(tǒng)提供的 Web 視圖控件的薄包裝器。在 Windows 上,即WebView2基于 Microsoft Edge。在 macOS 和 Linux 上,它們分別是WKWebView和WebKitGTK— 都使用 WebKit。
相反,JxBrowser 帶有內(nèi)置瀏覽器引擎 — 基于 Chromium。其理念是確保無論操作系統(tǒng)和安裝的軟件如何,瀏覽器行為都保持一致。
開發(fā)成本
過去,瀏覽器經(jīng)常以不同的方式呈現(xiàn)同一個網(wǎng)站。不同供應商的瀏覽器支持各自的 HTML、CSS 甚至 JavaScript 子集。瀏覽器之間驚人的不兼容性導致過多的開發(fā)和測試工作。這一直是問題的根源。
值得慶幸的是,Internet Explorer 早已消失。但是,不兼容問題是否也隨之消失?遺憾的是,并沒有。瀏覽器通過以不同的方式執(zhí)行代碼和呈現(xiàn)樣式,不斷讓開發(fā)人員感到不安。
SWT 方法很容易受到這個問題的影響。實際上,跨平臺的 SWT 應用程序可能不僅滿足 Edge 和兩種 WebKit 版本,還可能滿足它們的許多版本。有一點很清楚:瀏覽器運行時越多,需要的開發(fā)和測試工作就越多。
JxBrowser 帶有內(nèi)置瀏覽器引擎。這樣,開發(fā)人員就知道應用程序使用的 Chromium 的確切版本。該版本在每個操作系統(tǒng)上都保持不變,只有在 JxBrowser 升級時才會發(fā)生變化。
安全和更新
許多公司要求瀏覽器引擎保持最新狀態(tài)。這是一項安全要求,而且是合理的。僅今年一年,Chromium 就修復了 179 多個漏洞。其中六個漏洞已被已知利用。
使用系統(tǒng)瀏覽器的 SWT 方法在托管企業(yè)網(wǎng)絡中效果很好,因為可以通過域策略強制執(zhí)行及時更新。
JxBrowser 讓開發(fā)人員可以控制瀏覽器版本。這樣,應用程序就可以保證符合公司政策,而不依賴于環(huán)境。這種方法在非托管網(wǎng)絡或個人電腦上效果很好,只要應用程序經(jīng)常進行適當?shù)纳墶?
2024 年,JxBrowser 發(fā)布了 15 個帶有 Chromium 升級的版本。最新版本 JxBrowser 8.2.1 附帶 Chromium 131。
特征
內(nèi)置功能強大,但受限于自身架構(gòu)。使用不同的瀏覽器引擎會將 API 限制為與、和Browser兼容的功能。WebView2WKWebViewWebKitGTK
這Browser允許您:
JxBrowser 在底層使用 Chromium,這使得它更容易維護更廣泛的功能。除了通用的瀏覽功能外,它還提供 Chromium 特有的功能。此列表并不完整,但它展示了主要功能,讓您了解 JxBrowser 的功能:
控制瀏覽器
只需一行簡單的代碼即可創(chuàng)建 SWT 瀏覽器:new Browser(...)。但這行代碼的簡單性掩蓋了實際技術(shù)的復雜性。底層瀏覽器是非常復雜的項目。它們具有不同的進程模型、安全功能以及嵌入到其他平臺(如 SWT)的各自方法。
當需求簡單時,我們希望隱藏這種復雜性。然而,當事情變得嚴重時,對瀏覽器的更大控制可能就變得必要了。JxBrowser API 提供的概念層次結(jié)構(gòu)為您提供了這種控制。
通過創(chuàng)建 可以啟動 Chromium 的主進程Engine。如果需要五個主進程,則需要創(chuàng)建 的五個實例Engine。在一個引擎內(nèi)創(chuàng)建的對象與其他引擎在物理上是隔離的。
在每個引擎中,您都有一個或多個。這些是 Chromium 配置文件,允許將所有瀏覽器數(shù)據(jù)和設置分開保存。您可以在配置文件級別Profile管理緩存、代理、網(wǎng)絡、下載、權(quán)限和其他功能。
在配置文件中,您可以創(chuàng)建多個Browser實例 — 將它們視為 Chromium 中的選項卡。這些是實際的瀏覽器,可讓您導航、調(diào)度鼠標和鍵盤事件、截取屏幕截圖、打開 DevTools 以及執(zhí)行其他操作。即使瀏覽器對用戶不可見,它也能完全正常運行,因為默認情況下渲染發(fā)生在內(nèi)存中。要顯示瀏覽器,請使用 BrowserView。
最后,瀏覽器中可以有多個Frame實例。它們代表頁面上的實際框架,并允許您使用 JavaScript 和 DOM。
開發(fā)人員工具
SWT BrowserAPI 沒有開發(fā)者工具的概念,但您可以將 Microsoft Edge 或 Safari 的開發(fā)者工具連接到瀏覽器實例。目前 Linux 上尚無開發(fā)者工具。
JxBrowser 提供了一個 API 來打開 Chromium 的 DevTools,該工具適用于所有操作系統(tǒng)。您還可 以為任何 JavaScript 庫安裝開發(fā)人員工具擴展,并獲得原生開發(fā)人員體驗,就像在 Google Chrome 中一樣。
自動化測試
Browser目前無法對 SWT 中加載的 Web 內(nèi)容進行自動測試。
JxBrowser 與支持 Chromium DevTools 協(xié)議的自動化測試框架兼容,例如 Selenium、Puppeteer 或 Playwright。
支持和援助
由于 SWT 是一個開源項目,因此您可以始終信賴社區(qū)。如果您發(fā)現(xiàn)了錯誤或想到了一個不錯的功能,請在 GitHub上分享您的發(fā)現(xiàn),并隨時做出貢獻。
JxBrowser 是一款商業(yè)產(chǎn)品,專為時間緊迫且對第三方軟件和供應商要求較高的公司打造,提供私人幫助臺系統(tǒng),客戶報告將保密。保證的首次響應時間(或 SLA)為一個工作日。
技術(shù)支持包括產(chǎn)品使用幫助、故障排除協(xié)助、錯誤修復和功能請求審核。您的所有支持請求都將由 JxBrowser 軟件工程師直接處理。
如果您有產(chǎn)品試用下載、價格咨詢、優(yōu)惠獲取,或其他任何問題,請聯(lián)系。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)