彩票走势图

需要在 SWT 应用程序中显示 Web 内容时,选择内置浏览器小部件还是JxBrowser ?

翻译|对比评测|编辑:吉伟伟|2024-12-20 09:46:37.670|阅读 3 次

概述:当您需要在 SWT 应用程序中显示 Web 内容时,通常有两种选择:内置浏览器小部件或像 JxBrowser 这样的商业选项?本文分析了两者之间的差异,并帮助您根据自己的需求选择合适的解决方案。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

JxBrowser是一个跨平台的 JVM 库,它允许您将基于 Chromium 的 Browser 控件集成到 Compose、Swing、JavaFX、SWT 应用程序中,并使用 Chromium 的数百种功能。

点击下载最新版JxBrowser

当您需要在 SWT 应用程序中显示 Web 内容时,通常有两种选择:内置浏览器小部件或像 JxBrowser 这样的商业选项。

本文分析了两者之间的差异,并帮助您根据自己的需求选择合适的解决方案。

简而言之

内置Browser小部件简单但功能强大,使用操作系统提供的浏览器引擎。选择Browser以下情况:

  • 您必须使用免费软件。
  • 用例简单且不重要。

JxBrowser 是基于 Chromium 的高级商业 Web 视图控件。在以下情况下选择 JxBrowser:

  • 用例复杂或关键。
  • 您需要控制浏览器引擎版本。
  • 您需要一个跨平台的一致的浏览器引擎。
  • 您需要在 SWT 中自动测试 Web 内容。
  • 您需要一项高级功能。
  • 您需要支持、错误修复或自定义功能。

嵌入

鉴于该Browser小部件是 SWT 的一部分,因此可以很容易地将其嵌入到您的应用程序中:

var browser = new Browser(shell, SWT.NONE);
browser.setUrl("//example.com");

使用 JxBrowser,您必须首先将依赖项添加到项目中。根据您的构建系统,您可以使用Maven 工件、将 JAR 文件添加到类路径或创建 独立的 Eclipse 插件。

一旦添加了库,嵌入看起来如下所示:

var engine = Engine.newInstance(HARDWARE_ACCELERATED);
var browser = engine.newBrowser();
var browserView = BrowserView.newInstance(shell, browser);
browser.navigation().loadUrl("//example.com");

浏览器引擎

标准小部件工具包的最初想法是提供一种感觉与操作系统原生相同的用户体验。为了实现这一点,SWT 使用操作系统提供的小部件,而不是像其他工具包通常那样创建自己的小部件集。

因此,SWT 中的每个小部件都是本机对应部件的包装器。工具包为您提供了使用小部件的 API,但操作系统负责处理渲染、可访问性、焦点管理和其他事项。Browser 小部件也以这种方式工作。

是Browser操作系统提供的 Web 视图控件的薄包装器。在 Windows 上,即WebView2基于 Microsoft Edge。在 macOS 和 Linux 上,它们分别是WKWebView和WebKitGTK— 都使用 WebKit。

相反,JxBrowser 带有内置浏览器引擎 — 基于 Chromium。其理念是确保无论操作系统和安装的软件如何,浏览器行为都保持一致。

开发成本

过去,浏览器经常以不同的方式呈现同一个网站。不同供应商的浏览器支持各自的 HTML、CSS 甚至 JavaScript 子集。浏览器之间惊人的不兼容性导致过多的开发和测试工作。这一直是问题的根源。

值得庆幸的是,Internet Explorer 早已消失。但是,不兼容问题是否也随之消失?遗憾的是,并没有。浏览器通过以不同的方式执行代码和呈现样式,不断让开发人员感到不安。

SWT 方法很容易受到这个问题的影响。实际上,跨平台的 SWT 应用程序可能不仅满足 Edge 和两种 WebKit 版本,还可能满足它们的许多版本。有一点很清楚:浏览器运行时越多,需要的开发和测试工作就越多。

JxBrowser 带有内置浏览器引擎。这样,开发人员就知道应用程序使用的 Chromium 的确切版本。该版本在每个操作系统上都保持不变,只有在 JxBrowser 升级时才会发生变化。

安全和更新

许多公司要求浏览器引擎保持最新状态。这是一项安全要求,而且是合理的。仅今年一年,Chromium 就修复了 179 多个漏洞。其中六个漏洞已被已知利用。

使用系统浏览器的 SWT 方法在托管企业网络中效果很好,因为可以通过域策略强制执行及时更新。

JxBrowser 让开发人员可以控制浏览器版本。这样,应用程序就可以保证符合公司政策,而不依赖于环境。这种方法在非托管网络或个人电脑上效果很好,只要应用程序经常进行适当的升级。

2024 年,JxBrowser 发布了 15 个带有 Chromium 升级的版本。最新版本 JxBrowser 8.2.1 附带 Chromium 131。

特征

内置功能强大,但受限于自身架构。使用不同的浏览器引擎会将 API 限制为与、和Browser兼容的功能。WebView2WKWebViewWebKitGTK

这Browser允许您:

  • 加载网站和本地 HTML 文件;
  • 管理cookies;
  • 管理弹出窗口;
  • 执行基本授权;
  • 从 Java 调用 JavaScript 以及反之亦然;
  • 当页面位置或标题改变时监听事件。


JxBrowser 在底层使用 Chromium,这使得它更容易维护更广泛的功能。除了通用的浏览功能外,它还提供 Chromium 特有的功能。此列表并不完整,但它展示了主要功能,让您了解 JxBrowser 的功能:

  • Chrome 扩展程序。
  • 截屏。
  • 印刷。
  • 表单自动填充。
  • 自定义协议。
  • 控制 HTTP 流量。
  • 高级身份验证(包括 NTLM、SSL 客户端证书、SuisseID、U2F、集成 Windows 身份验证和 Kerberos)。
  • 等等。

控制浏览器

只需一行简单的代码即可创建 SWT 浏览器:new Browser(...)。但这行代码的简单性掩盖了实际技术的复杂性。底层浏览器是非常复杂的项目。它们具有不同的进程模型、安全功能以及嵌入到其他平台(如 SWT)的各自方法。

当需求简单时,我们希望隐藏这种复杂性。然而,当事情变得严重时,对浏览器的更大控制可能就变得必要了。JxBrowser API 提供的概念层次结构为您提供了这种控制。

通过创建 可以启动 Chromium 的主进程Engine。如果需要五个主进程,则需要创建 的五个实例Engine。在一个引擎内创建的对象与其他引擎在物理上是隔离的。

在每个引擎中,您都有一个或多个。这些是 Chromium 配置文件,允许将所有浏览器数据和设置分开保存。您可以在配置文件级别Profile管理缓存、代理、网络、下载、权限和其他功能。

在配置文件中,您可以创建多个Browser实例 — 将它们视为 Chromium 中的选项卡。这些是实际的浏览器,可让您导航、调度鼠标和键盘事件、截取屏幕截图、打开 DevTools 以及执行其他操作。即使浏览器对用户不可见,它也能完全正常运行,因为默认情况下渲染发生在内存中。要显示浏览器,请使用 BrowserView。

 最后,浏览器中可以有多个Frame实例。它们代表页面上的实际框架,并允许您使用 JavaScript 和 DOM。

开发人员工具

SWT BrowserAPI 没有开发者工具的概念,但您可以将 Microsoft Edge 或 Safari 的开发者工具连接到浏览器实例。目前 Linux 上尚无开发者工具。

JxBrowser 提供了一个 API 来打开 Chromium 的 DevTools,该工具适用于所有操作系统。您还可 以为任何 JavaScript 库安装开发人员工具扩展,并获得原生开发人员体验,就像在 Google Chrome 中一样。

自动化测试

Browser目前无法对 SWT 中加载的 Web 内容进行自动测试。

JxBrowser 与支持 Chromium DevTools 协议的自动化测试框架兼容,例如 Selenium、Puppeteer 或 Playwright。

支持和援助

由于 SWT 是一个开源项目,因此您可以始终信赖社区。如果您发现了错误或想到了一个不错的功能,请在 GitHub上分享您的发现,并随时做出贡献。

JxBrowser 是一款商业产品,专为时间紧迫且对第三方软件和供应商要求较高的公司打造,提供私人帮助台系统,客户报告将保密。保证的首次响应时间(或 SLA)为一个工作日。

技术支持包括产品使用帮助、故障排除协助、错误修复和功能请求审核。您的所有支持请求都将由 JxBrowser 软件工程师直接处理。

如果您有产品试用下载、价格咨询、优惠获取,或其他任何问题,请联系

慧都年终大促火热开启



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP