2024
- v8.2.0
- 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年11月6日
JxBrowser 7.12
好消息!JxBrowser 7.12 正式发布,现已升级至 Chromium 84 内核!
由于 Chromium 84 API 中的几个重大更改,我们对 JxBrowser 的公共 API 进行了一些更新。请查看从 JxBrowser 中移除的 API 部分,以及我们建议使用的替代方案。
Chromium 84
Chromium 已更新至 84.0.4147.135 版本。
在此 Chromium 版本中,JxBrowser 中包含的一些功能已被删除或更改,因此该 JxBrowser 版本在公共 API 中引入了几项重大更改。
请查看此版本的迁移指南,了解哪些 API 已更改/移除以及应使用哪些替代方法。
DOM
可信事件
com.teamdev.jxbrowser.dom.event.Event
接口已扩展 isTrusted()
该方法允许检测事件是由用户操作生成,还是通过 EventTarget.dispatchEvent()
方法创建、修改并分发的。
MouseEvent:页面位置
com.teamdev.jxbrowser.dom.event.MouseEvent
接口已扩展 pageLocation()
方法,该方法允许获取事件发生时鼠标光标在文档坐标系中的位置。
KeyEvent:键码
获取 com.teamdev.jxbrowser.dom.event.KeyEvent
键码的功能已重新设计,使其类似于 DOM KeyboardEvent。我们引入了 DomKeyCode
枚举来表示 DOM 键码,并扩展了 com.teamdev.jxbrowser.dom.event.KeyEvent
,添加了获取 DOM 键码和表示与物理键关联的 UTF-8 字符串的方法(如果该键有打印表示)。例如:
document.addEventListener(EventType.KEY_PRESS, event -> {
if (event instanceof KeyEvent) {
KeyEvent keyEvent = (KeyEvent) event;
DomKeyCode keyCode = keyEvent.domKeyCode();
String character = keyEvent.character();
System.out.println("DOM KeyEvent: keyCode=" + keyCode + ", character=" + character);
}
}, false);
JS 可访问的 Java 类
JavaScript-Java 桥接 API 已扩展 com.teamdev.jxbrowser.js.JsAccessibleClasses
,该类允许指定类型的 Java 实例可以从 JavaScript 中访问。例如:
JsAccessibleClasses.add(ArrayList.class, LinkedList.class);
Cookie SameSite
已添加对 SameSite
Cookie 属性的支持。
改进
- 现在该库在离屏渲染模式下通过了检测 “
MovementX
和MovementY
在鼠标事件中变化” 的 JS 测试。 - 从此版本开始,
Frame.isMain()
方法不再向 Chromium Engine 发送请求来确定该 Frame 是否是 Browser 中的主(顶级)Frame。现在,这些信息在创建Frame
时提供,并缓存以供后续调用。 - 现在不允许运行与 JxBrowser Chromium 二进制文件一起提供的 Chromium 可执行文件。JxBrowser 使用的 Chromium 二进制文件仅供 JxBrowser 使用,用户不应能够直接运行它并将其用作常规的 Web Browser 应用程序。
- 现在允许将 JavaFX 的
BrowserView
嵌入到继承自JFXPanel
的容器中。例如:JFXPanel fxPanel = new MyJFXPanel(); BrowserView view = BrowserView.newInstance(browser); fxPanel.setScene(new Scene(new BorderPane(view), 600, 600)); private static final class MyJFXPanel extends JFXPanel {}
TextFinder
的 Javadoc 已扩展,提供了关于文本搜索如何工作、如何高亮显示匹配项、如何检测第一个匹配项等额外详细信息。- 默认情况下,Chromium 会在二进制文件所在目录中创建
debug.log
文件。在某些环境中,访问该目录可能被禁止,操作系统可能会报告此类尝试。从此版本开始,Chromium 将不再创建debug.log
文件,相应的日志消息将重定向到 JxBrowser 日志中。 - 现在,库中使用的 Chromium 构建是使用
is_official_build=true
标志构建的。官方的 Chromium 构建禁用了在官方 Google Chrome 构建中禁用的实验性 Study Configurations(测试配置)。在 JxBrowser 之前的版本中启用的实验性功能之一是 Page Freezing(页面冻结),该功能可能会冻结网页并停止 JavaScript 执行。因此,库中使用的 Chromium Engine 在启用/禁用的内部功能方面变得更接近官方 Chromium 构建。 - 已禁用触发 Windows Audit Failures(Windows 审核失败) 的功能。此问题由 Chromium 调用 Windows API 中的
LogonUser()
函数,并传递空密码导致。我们通过禁用尝试使用空密码登录的功能解决了此问题。此更改不会影响任何其他 Chromium 功能。
已修复的问题
- 当 Chromium 渲染进程崩溃时,不再显示 “Aw, snap” 页面。
- 在 Windows 上,JavaFX 7.9 版本中,离屏渲染模式下出现渲染错误。
- 在 Linux 上,在硬件加速渲染模式下隐藏和显示带有嵌入式
BrowserView
的JFrame
后,Web 内容不显示的问题。 - 在离屏渲染模式下,带有空数据类型的 HTML5 拖放事件被忽略,这导致部分 HTML5 拖放事件完全无法工作。
- 在离屏渲染模式下,从文件系统拖动文件到 Swing 的
BrowserView
实例时出现NullPointerException
错误。 - 在离屏渲染模式下,主
Stage
显示后,尝试显示包含嵌入式BrowserView
实例的 JavaFXScene
时出现NullPointerException
错误。 CookieStore
不保存未指定SameSite
属性的 Cookies。- 在 PDF 查看器内部右键点击时,
ShowContextMenuCallback
未被调用。 - 在 Linux 上使用 NVidia GeForce 1650 和 430.64 驱动版本时,离屏渲染无法正常工作。
- 如果存在其他同名方法,则 JavaScript-Java Bridge 功能无法调用被
@JsAccessible
注解标记的 Java 方法。 - 当
Engine
实例在隐身模式下运行时,拼写检查词典未被配置。 - 在 macOS 上的 SWT 中,使用硬件加速渲染模式时,Print Preview(打印预览)对话框中的渲染出现问题。
- 在 macOS 上的 SWT 中,离屏渲染模式下未显示 Print Preview 对话框。
- 在 Windows 和 Linux 上,在硬件加速渲染模式下,右键单击网页上的 Flash 时,默认的 Swing
BrowserView
上下文菜单不可见。 - 在 macOS 上,无法将
Browser
调整为小于 300px 的大小。 EventType.DOUBLE_CLICK
的 DOM 事件监听器从未被调用。- 在离屏渲染模式下,
EnterMouseCallback
和ExitMouseCallback
未被调用。在 Windows 和 Linux 上的硬件加速渲染模式下,EnterMouseCallback
由于被 Chromium Engine 忽略而无法被调用。 - 在离屏渲染模式下,在 Eclipse 的
Part
切换标签时,SWTBrowserView
组件不可见。 - 在 SWT 中将当前加载的网页打印为 PDF 时,默认保存文件名错误。
- 在禁用 Chromium 流量的情况下,在加载的网页上的输入字段中键入一些文本时,拼写检查器初始化失败。
- 在离屏渲染模式下,自定义 CSS 光标在 Windows 上模糊。
- 在 Windows 的硬件加速渲染模式下,将 JavaFX
BrowserView
添加到SplitPane
或从中移除时,出现黑色闪烁。 - 在 Windows 的离屏渲染模式下,显示/隐藏
BrowserView
时,屏幕会随机出现黑色矩形闪烁。 - 当关闭
Browser
时,注入到 JavaScript 中的 Java 对象上标记有@JsAccessible
注解的方法会被多调用一次。 - 通过
window.close()
JavaScript 函数关闭 SwingBrowserView
弹出实例时,会出现IndexOutOfBoundsException
错误。 - 加载具有无效 SSL 证书的 HTTPS 网页时,
ShowNetErrorPageCallback
回调不会被调用。 - 在离屏渲染模式下,无法将焦点设置到具有不同域的
IFRAME
内的 HTML 输入字段。 - 恢复支持 Firebase Cloud Messaging。
- 在 v7.8 之后重新引入 macOS 和 Windows 上的 Widevine 功能。
- 在离屏渲染模式下,对于不同的鼠标移动事件,
MouseEvent.movementX
和MouseEvent.movementY
属性应该有所不同。 - 在 macOS 上由于与
mach_port
功能相关的多个 JNI 错误导致 JVM 崩溃。
下载 JxBrowser 7.12
请提供您的电子邮箱地址,我们会尽快将下载说明发送给您。
我们无法发送电子邮件。请使用直接链接下载JxBrowser。
如果您已经是我们的注册客户,您无需任何操作,即可轻松享受此次更新。
如果您希望深入了解并体验我们的产品,您可以申请评估许可证。