List icon 目录

发布日期 2019年11月26日

JxBrowser 7.4

JxBrowser 7.4 带来了许多强大的功能:现在你可以嵌入来自 Netflix、Amazon Prime、Spotify 等使用 DRM 解密的平台的视频和音频内容。此外,你还可以将 JxBrowser 嵌入到专为 ARM 设备设计的应用程序中。

ARM

JxBrowser 7.4 在 Linux 64 位上支持 ARM 架构,并已在以下环境中进行了测试:

  • Raspberry Pi 2(搭载 900MHz 四核 ARM Cortex-A7 CPU)和 AWS(AWS Graviton 处理器);
  • Ubuntu 16.04 LTS 和 18.04 LTS 64 位版本;
  • JDK 8 64 位(JRE 不提供 GUI),OpenJDK 11(Swing + JavaFX)。

专有功能

H.264、MP4、AAC

我们很高兴地宣布,从此版本开始,您无需请求单独的 *c 构建来启用专有编解码器以播放 H.264、MP4 和 AAC 格式。您可以通过下面示例中的 API 启用默认禁用的专有编解码器:

Engine engine = Engine.newInstance(
        EngineOptions.newBuilder(renderingMode)
                .enableProprietaryFeature(ProprietaryFeature.AAC)
                .enableProprietaryFeature(ProprietaryFeature.H_264)
                .build());

H.264 和 AAC 编解码器是专有组件。通过启用这些编解码器,您声明您知晓 H.264 和 AAC 是专有组件,并且您应当具备使用它们的许可证。有关更多信息,请联系专利持有者:Via Licensing 和 MPEG LA。TeamDev 不对您使用 H.264 和 AAC 编解码器负责。

Widevine

现在您可以启用名为 Widevine 的专有组件,它允许在 Netflix、Amazon Prime、Spotify 和其他使用 Widevine 分发内容的 Web 服务上播放视频/音频内容。

Widevine 组件默认是禁用的。请使用以下代码来启用它:

Engine engine = Engine.newInstance(
        EngineOptions.newBuilder(renderingMode)
                .enableProprietaryFeature(ProprietaryFeature.WIDEVINE)
                .build());

Widevine 是 Google 专有组件,受其自己的使用条款约束。有关更多信息,请参阅 https://www.widevine.com/

Windows Server 2019

现在,该库正式支持 Windows Server 2019。

禁用拖放

默认情况下,对于 Swing 和 JavaFX 的 BrowserView,拖放功能是启用的。要禁用拖放,请使用以下新的 API:

browserView.dragAndDrop().disable();

DOM 属性

DOM API 已扩展新功能,允许获取元素的属性节点列表。例如:

element.attributeNodes().forEach(attribute ->
        System.out.println("name = " + attribute.nodeName()));

改进

  • Navigation 类已扩展了 browser() 方法,允许获取与 Navigation 关联的 Browser 实例。
  • 现在,拼写检查词典被下载到用户数据目录,而不是 Windows 上包含 Chromium 二进制文件的目录。我们这样做是因为 Chromium 二进制文件所在的目录通常具有只读访问权限,并且 Engine 不允许在那里创建新文件。在这种情况下,拼写检查词典无法成功加载和初始化,因此拼写检查可能无法按预期工作。此更新后,这种情况不再存在。
  • 在离屏渲染模式下,当将内容拖动到外部应用程序时,现在会更新拖动光标。
  • 添加了 NetError.BLOCKED_BY_RESPONSE 该错误发生在网页服务器禁止 Frame 嵌入时。缺少的错误代码导致了一些网页不会触发 FrameLoadFailed 事件的问题。
  • 添加了对 Document.visibilityState 属性的支持。现在,如果您从容器中移除 BrowserView 或最小化包含 BrowserView 的窗口,此属性的值将会改变。
  • macOS 的 JxBrowser 二进制文件已经签名并公证,以符合 macOS Catalina 的要求
  • 仅当 Linux 上的系统库缺失时,库才会创建符号链接。有时系统库可能会因系统更新而更新或删除。在这种情况下,由于符号链接损坏,下一次启动将会失败。现在,库每次启动时都会检查并创建符号链接。
  • JxBrowser 现在允许从标有 @JsAccessible 注释的方法中抛出异常。您可以抛出异常或 assert
  • 在 Print Preview(打印预览)对话框中恢复了 "Print using system dialogue...",允许您使用系统打印对话框打印网页。
  • JxBrowser 现在允许将文件(例如图片)拖放到 BrowserView 中,并做出适当的响应(例如加载并显示被拖放的文件)。

已修复的问题

  • 在 Swing 或 JavaFX 容器中添加和删除 BrowserView 组件时发生内存泄漏。
  • 在 Linux 上,大约 2 小时不活动后出现的 Chromium 进程意外终止问题。其根本原因是 Chromium 的更新功能,该功能试图在大约 2 小时不活动后克隆 Main Chromium 进程。由于该库不支持自动更新,我们禁用了 Chromium 中的这一功能以解决此问题。
  • 在使用 Java 13 的 Linux 系统上出现 java.lang.UnsatisfiedLinkError 异常,这是由于缺少依赖项导致的。
  • 在 macOS 上配置为西班牙语语言环境时,由于缺少语言包,导致 Chromium 启动失败。
  • 在 macOS 上,当使用 Java 11 或更高版本将文件从文件系统拖到 Swing BrowserView 组件中时抛出 java.lang.NullPointerException 异常。
  • 对于没有到期时间的会话 Cookie,将返回无效的 Cookie 到期时间。现在,如果 Cookie 没有到期时间,它将返回 Timestamp.NONE
  • 默认情况下,文本查找器现在向后迭代。
  • 在 PDF 内部搜索匹配大小写功能不起作用。
  • 当将 Swing 的 BrowserView 组件嵌入到 JTabbedPane 容器时,Web 内容显示在主屏幕的左上角。
  • 在离屏渲染模式下,当在多个显示器之间移动 BrowserView 时,Chromium Engine 会发生本地崩溃。
  • 在硬件加速渲染模式下,当 JavaFX 的 BrowserView 开始分离本地窗口时,由于缺少主 Chromium 进程,会遇到 IllegalStateException 问题。
  • 某些由 Angular 生成的键盘监听器在离屏渲染模式下未能处理键盘事件。

已弃用的 API

允许忽略 SSL 证书错误的 CertificateErrorCallback 功能已标记为 @deprecated,并将在接下来的版本中移除。请改用 VerifyCertificateCallback 回调,您可以告知 Engine 无效的 SSL 证书是有效的,并且 Engine 应继续加载资源。

下载 JxBrowser 7.4

请提供您的电子邮箱地址,我们会尽快将下载说明发送给您。

发送...
请检查您的收件箱。

我们无法发送电子邮件。请使用直接链接下载JxBrowser。

如果您已经是我们的注册客户,您无需任何操作,即可轻松享受此次更新。

如果您希望深入了解并体验我们的产品,您可以申请评估许可证。

获取免费 30 天体验