发布日期 2015年12月14日
JxBrowser 6.0
本页将引导您了解 JxBrowser 6.0 中的主要新功能和改进。
GPU 加速渲染
除了标准的轻量级(离屏)渲染模式外,现在 JxBrowser 还支持重量级(窗口化、GPU 加速)渲染模式。这两种模式的区别描述如下。
在轻量级渲染模式下,Chromium Engine 使用 CPU 离屏渲染网页。网页的图像保存在共享内存中。JxBrowser 从共享内存中读取图像,并使用标准的 Java Graphics 2D API 显示它。如果你需要一个真正轻量级的 Swing/JavaFX 组件来显示现代 HTML5/JavaScript/CSS 网页,这种方法效果很好。
要使用轻量级渲染模式创建 Browser
实例,可以使用以下代码:
Browser browser = new Browser(BrowserType.LIGHTWEIGHT);
在 JxBrowser 6 中默认采用的重量级渲染模式下,我们将本机窗口嵌入 Java 框架并配置 Chromium Engine 以使用 GPU 将内容渲染到此本机窗口中。在这种情况下,GPU 加速渲染比轻量级渲染模式要快得多。在此模式下,渲染性能与 Google Chrome 相同,允许以 60fps 的速度显示全屏视频。
要使用重量级渲染模式创建 Browser
实例,请使用以下代码:
Browser browser = new Browser();
Browser browser = new Browser(BrowserType.HEAVYWEIGHT);
JavaScript-Java bridge
性能
Java 和 JavaScript 之间的数据传输现在快了约 10 倍。
JSArray 与 JSDictionary
在 JxBrowser 6 中,JavaScript-Java Bridge API 允许从 JavaScript 向 Java 代码传输数组和词典,反之亦然。以下示例演示了如何使用 JSArray:
browser.registerFunction("MyFunction", new BrowserFunction() {
public JSValue invoke(JSValue... args) {
// 返回 ['Str', 123, true] 数组
List array = new ArrayList();
array.add("Str");
array.add(123);
array.add(true);
return JSValue.create(array);
}
});
Proxy API
JxBrowser 6 中的 Proxy API 已得到改进。现在它支持 HTTP、HTTPS、FTP 和 SOCKS 协议。以下示例演示了如何使用更新后的 Proxy API:
String proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80";
String exceptions = "<local>"; // 绕过本地网页的代理服务器
contextParams.setProxyConfig(new CustomProxyConfig(proxyRules, exceptions));
BrowserContextParams contextParams = new BrowserContextParams("chromium-data-dir");
Browser browser = new Browser(new BrowserContext(contextParams));
CJK 输入
在 Mac OS X 和 Windows 上启用重量级模式后,JxBrowser 组件现在允许 CJK 输入,与 Google Chrome 类似。这种输入默认是启用的。
完整的更改和改进列表
- 添加了重量级 GPU 加速渲染模式。
- 添加了对 Citrix 环境的支持。
- 添加了代理功能中对 SOCKS 协议的支持。
- 添加了对 Maven 项目的支持。请参见有关如何在 Maven 项目中使用 JxBrowser 的说明。
- 在 JavaScript Java Bridge API 中添加了 JSArray 和 JSDictionary 类型。
- 改进了 JavaScript Java Bridge 的性能。现在速度快了约 10 倍。
- 添加了通过 JavaScript Java Bridge 将 JSON 字符串传递到 JavaScript 端的支持。
- 实现了
NetworkDelegate.onPACScriptError()
事件。 - 实现了对 Windows 和 Mac 上无障碍功能的支持 [heavyweight, swing, javafx]。
- 添加了对 Windows 和 Mac 上的 CJK 输入的支持 [heavyweight, swing, javafx]。
- 添加了对
--disable-direct-write
切换器的支持 [heavyweight]。 - 实现了对 SWT 环境的支持 [heavyweight, swing, javafx]。
- 修复了在 Mac 上丢失移动光标的问题 [lightweight, swing, javafx]。
- 修复了在 Mac 上错误的按键代码问题 [lightweight, swing, javafx]。
- 修复了 cursors.properties 文件中光标名称错误的问题 [lightweight, swing, javafx]。
- 修复了自定义光标位置错误的问题 [lightweight, swing]。
- 修复了
DOMEventListener
中目标不正确的问题。 - 修复了 vimeo.com 上的视频无法播放的问题。
- 修复了在按下 Alt 键时仍然可以输入文本的问题 [lightweight]。
- 修复了页数为 0 时打印为 PDF 失败的问题。
- 修复了关闭 PDF 文档弹出窗口导致崩溃的问题 [heavyweight, swing, javafx]。
- 修复了点击
BrowserView
控件时菜单项未关闭的问题 [heavyweight, swing, javafx]。 - 修复了
Browser
显示默认 SSL 证书对话框时的死锁问题 [heavyweight, swing, javafx]。 - 修复了无法为多个
Browser
实例配置各自代理设置的问题。 - 修复了在 Mac 上使用 JxBrowser 的 Java Applet 时出现的
NoSuchMethodException
问题 [heavyweight, lightweight, swing, javafx]。 - 修复了
BrowserPreferences.getDefaultAcceptLanguage()
方法中的NullPointerException
问题。 - 默认情况下,Chromium UI 语言配置与 Java UI 语言一致。
- JAR 清单文件中的 Trusted-Library 属性已被移除。
- 在 Windows 上已禁用
debug.log
文件生成。 - 在 Linux 上添加了
libcrypto.so.1.0.0
的符号链接。 - 在 Windows 上,如果 Chromium 进程发生本地崩溃,库会生成
jxbrowser-chromium.dmp
文件,并将其存储在%localappdata%\JxBrowser
目录中,例如c:\users\<username>\appdata\local\JxBrowser\jxbrowser-chromium.dmp
。
请发送电子邮件至 customer-care@teamdev.com 以获取 JxBrowser 6.0 的下载链接。
关注 @JxBrowserTeam ,获取库的更新动态。
订阅我们的 RSS feed ,获取最新版本动态。