2024
- v7.41.4
- v8.1.0
- v8.0.0
- v7.41.3
- v7.41.2
- v7.41.1
- v7.41.0
- v7.40.0
- v7.39.2
- v7.39.1
- v7.39.0
- v7.38.2
- v7.38.1
- v7.38.0
- v7.37.2
- v7.37.1
2023
- v7.37.0
- v7.36.3
- v7.36.2
- v7.36.1
- v7.36
- v7.35.2
- v7.35.1
- v7.35
- v7.34.1
- v7.34
- v7.33.2
- v7.33.1
- v7.33
- v7.32
- v7.31.1
- v7.31
- v7.30.3
- v7.30.2
- v7.30
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
发布日期 2020年5月15日
JxBrowser 7.7
我们很高兴向您介绍 JxBrowser 7.7!此更新是该库历史上的一个新篇章。在此版本中,我们为 SWT/Eclipse RCP 应用程序引入了纯 SWT BrowserView
控件。
SWT
该库现在提供了纯 SWT com.teamdev.jxbrowser.view.swt.BrowserView
控件,可以嵌入到 SWT/Eclipse RCP 应用程序中。
以下是一个简单示例,演示了如何在一个简单的 SWT 应用程序中使用 SWT BrowserView
:
import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;
import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.engine.EngineOptions;
import com.teamdev.jxbrowser.view.swt.BrowserView;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public final class HelloWorld {
public static void main(String[] args) {
// 创建并运行 Chromium Engine。
Engine engine = Engine.newInstance(
EngineOptions.newBuilder(HARDWARE_ACCELERATED).build());
Browser browser = engine.newBrowser();
// 加载所需的网页。
browser.navigation().loadUrl("https://html5test.teamdev.com");
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("JxBrowser SWT");
shell.setLayout(new FillLayout());
// 创建 SWT 组件用于渲染加载到 Browser 实例中的 Web 内容。
BrowserView view = BrowserView.newInstance(shell, browser);
view.setSize(800, 600);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
// 关闭 Engine 并释放所有分配的资源。
engine.close();
display.dispose();
}
}
Eclipse RCP
SWT 工具包经常用于 Eclipse RCP 应用程序中,因此我们准备了一个简短的教程介绍如何在 Eclipse RCP 应用程序中使用 JxBrowser 的 SWT BrowserView
。
JsFunction
JsFunction
类已在 JavaScript-Java Bridge API 中恢复。现在,您可以直接从 Java 代码与 JavaScript 函数交互,并将函数引用从 JavaScript 传递到 Java,反之亦然。例如:
JsObject window = frame.executeJavaScript("window");
if (window != null) {
JsFunction alert = frame.executeJavaScript("window.alert");
if (alert != null) {
alert.invoke(window, "Hello world!");
}
}
改进
- 因为在 Chromium 进程中加载时间和内存使用方面的改进,网页的加载速度现在比以前的版本快了两倍。
- JxBrowser 现在支持 Firebase Cloud Messaging(Firebase 云消息传递)。
- 增加了对 WebAssembly 的支持。
- 在此版本中,您可以在网页上渲染 HTML 的
<datalist>
标签。 - Web 表单的自动填充功能现在默认禁用。
- 在 Linux 上,您现在可以通过 Swing/JavaFX 的
BrowserView
组件实现文件、图像和文本的拖放功能,因为已经移除了在两种渲染模式下的拖放功能限制。 - 由于 JxBrowser 仅支持 Linux 的 64 位版本,因此在尝试在 32 位 Linux 上运行时,现在会抛出异常。这是通过新的
Environment.checkEnvironment()
方法实现的,该方法负责检测这种不受支持的环境。
已修复的问题
- 当启用硬件加速渲染模式时,嵌入到
javax.swing.JApplet
中的 SwingBrowserView
组件不可见。 - 内部测试资源被排除在 JAR 文件之外。
- 在 Windows 上,通过鼠标点击设置 Swing
BrowserView
时,不会清除当前聚焦的 Swing 组件的焦点。 - 在 Windows 上,以硬件加速渲染模式显示 Swing
BrowserView
时会出现IllegalArgumentException
错误。 - 在 Windows 的离屏渲染模式下,将 Swing
BrowserView
嵌入到JScrollPane
中时出现双重内容渲染问题。 - 在离屏渲染模式下,当加载的网页正在进行重绘时,关闭
Browser
会导致程序冻结。 - 在 Windows 上的硬件加速渲染模式下,点击嵌入到
JFXPanel
中的 JavaFXBrowserView
后,Swing 应用程序无法接收焦点。 - Google reCAPTCHA 无法通过
Tab
键接收焦点。 - 在离屏渲染模式下,无法在位于网页中
IFRAME
内的文本字段中输入任何内容。 - 在 Windows 的离屏渲染模式下,关闭嵌入
BrowserView
组件的窗口会导致所有Browser
实例关闭。 - 在 Windows 和 Linux 上由于时间控制问题关闭离屏渲染模式下的
Engine
时会冻结。 - 在 Windows 和 Linux 上,取消订阅
BrowserClosed
事件后,关闭Engine
时会冻结。 - 加载
chrome://settings
网页时,Chromium 崩溃。此网页现已被禁用。 - 当 Swing
BrowserView
组件嵌入到JDialog
并启动文件下载时,会出现ClassCastException
错误。 - 在 Linux 硬件加速渲染模式下全屏模式中出现单像素白色垂直线。
- 在 macOS 上 Engine 崩溃或意外终止时,Chromium 日志文件会在包含 Chromium 二进制文件的目录中创建。
- 在 Ubuntu 上的硬件加速渲染模式下,
BrowserView
组件内出现白色角区域。
下载 JxBrowser 7.7
请提供您的电子邮箱地址,我们会尽快将下载说明发送给您。
我们无法发送电子邮件。请使用直接链接下载JxBrowser。
如果您已经是我们的注册客户,您无需任何操作,即可轻松享受此次更新。
如果您希望深入了解并体验我们的产品,您可以申请评估许可证。