彩票走势图

Java浏览器集成控件JxBrowser 11月新版发布!可运行Chromium 84

原创|产品更新|编辑:李显亮|2020-11-13 09:57:32.330|阅读 669 次

概述:JAVA应用程序浏览器集成控件JxBrowser更新至7.12, 现在可以在Chromium 84上运行,并且在使用DOM和JavaScript-Java Bridge API时提供了许多新选项,欢迎下载体验。

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

JxBrowser是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML5、CSS3、JavaScript、Flash等。

近日,JxBrowser v7.12发布啦!JAVA应用程序浏览器集成控件JxBrowser更新至7.12, 现在可以在Chromium 84上运行,并且在使用DOM和JavaScript-Java Bridge API时提供了许多新选项,欢迎下载体验。

点击下载最新版JxBrowser

新增功能

Chromium 84

在这个Chromium构建中,一些与JxBrowser封装的功能已经被移除或改变,所以这个JxBrowser版本在公共API中引入了一些突破性的变化。

可信事件

com.teamdev.jxbrowser.dom.event.Event接口已经扩展了isTrusted()方法,允许检测事件是由用户操作产生的,还是通过EventTarget.dispatchEvent()创建/修改并发送的。

MouseEvent:页面位置

com.teamdev.jxbrowser.dom.event.MouseEvent接口已经扩展了pageLocation(),允许获取事件发生时鼠标光标在文档坐标系中的位置。

MouseEvent:页面位置

允许从com.teamdev.jxbrowser.dom.event.KeyEvent中获取键码的功能已经被重新设计为与DOM KeyboardEvent类似。我们为DOM键码引入了DomKeyCode枚举,并扩展了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 Bridge API已经扩展了com.teamdev.jxbrowser.js.JsAccessibleClasses,它允许告诉人们特定类型的Java实例可以从JavaScript中访问。例如

JsAccessibleClasses.add(ArrayList.class, LinkedList.class);

Cookie SameSite

增加了SameSite cookie属性支持。

改进功能

  • 通过了在离屏渲染模式下检查 "MovementX和MovementY在鼠标事件中的变化 "的JS测试。
  • Frame.isMain()方法不再向Chromium引擎发送请求,以找出这个框架是否是浏览器中的主(顶层)框架。现在,这个信息会在创建一个Frame时提供,并缓存起来供进一步调用。
  • 现在不允许运行JxBrowser Chromium二进制文件中附带的Chromium可执行文件。JxBrowser所使用的Chromium二进制文件应该只供JxBrowser使用,用户不应该能够直接运行它并将其作为普通的Web浏览器应用程序使用。
  • 允许将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官方构建中禁用的实验性学习配置。其中有一个实验性的功能在以前的JxBrowser版本中被启用了,就是页面冻结,可能会冻结网页并停止JavaScript的执行。因此,该库使用的Chromium引擎在内部功能的启用/禁用方面变得更接近官方Chromium构建。
  • 触发Windows审计失败的功能被禁用。这个问题是由于Chromium从Windows API中调用LogonUser()函数,并向其传递了一个空的密码。我们通过禁用试图使用空密码登录的功能来解决这个问题。这个变化不影响任何其他Chromium功能。

Bug修复

  • Chromium渲染进程崩溃时不显示 "Aw, snap"页面。
  • 在Windows上的离屏渲染模式下,JavaFX在7.9中引入的破损渲染。
  • 在Linux下,在硬件加速渲染模式下,隐藏和显示嵌入BrowserView的JFrame后不显示网页内容。
  • 离屏渲染模式下忽略了HTML5拖拽事件中的空数据味道,导致部分HTML5 DnD事件根本无法工作。
  • 离屏渲染模式下从文件系统拖动文件到Swing BrowserView实例时出现NullPointerException错误。
  • 在离屏渲染模式下,在显示主舞台后,用嵌入式BrowserView实例显示JavaFX场景时,出现NullPointerException错误。
  • CookieStore没有保存带有未指定SameSite属性的Cookie。
  • 当在PDF浏览器中右击时,ShowContextMenuCallback没有被调用。
  • 在使用NVidia GeForce 1650和430.64驱动版本的Linux上,离屏渲染不工作。
  • JavaScript-Java Bridge功能不能调用标有@JsAccessible注解的Java方法,如果有其他方法与之同名。
  • 当引擎实例在Incognito模式下运行时,拼写检查器字典没有被配置。
  • 在macOS上SWT的硬件加速渲染模式下,打印预览对话框的渲染中断。
  • 在macOS上SWT的离屏渲染模式下,打印预览对话框不显示。
  • 在Windows和Linux上的硬件加速渲染模式下,在网页上右击Flash时,默认的Swing BrowserView上下文菜单不可见。
  • 在macOS上,浏览器无法调整到小于300px的大小。
  • EventType.DOUBLE_CLICK的DOM事件监听器从未被调用。
  • 在离屏渲染模式下,EnterMouseCallback和ExitMouseCallback没有被调用。在Windows和Linux的硬件加速渲染模式下,EnterMouseCallback无法被调用,因为它被Chromium引擎忽略了。
  • 在离屏渲染模式下,SWT BrowserView组件在Eclipse的Part on tab开关中不可见。
  • 在SWT中打印当前加载的网页为PDF时,默认保存文件名错误。
  • 在禁用Chromium流量的情况下,在已加载网页的输入栏中输入一些文本时,拼写检查器初始化失败。
  • 在Windows的离屏渲染模式下,自定义CSS光标模糊。
  • 在Windows的硬件加速渲染模式下,在SplitPane中添加/删除JavaFX BrowserView时出现黑色闪烁。
  • 在Windows的离屏渲染模式下,当显示/隐藏BrowserView时,随机出现黑色矩形闪烁。
  • 注入到JavaScript中的Java对象中标有@JsAccessible注解的方法在关闭Browser时被多调用一次。
  • 通过window.close()JavaScript函数关闭Swing BrowserView弹出式实例时出现的IndexOutOfBoundsException错误。
  • 当加载一个SSL证书无效的HTTPS网页时,ShowNetErrorPageCallback回调没有被调用。
  • 在离屏渲染模式下,不能将焦点设置为位于不同域的IFRAME内的HTML输入字段。
  • 恢复了对Firebase云消息的支持。
  • v7.8之后重新引入了macOS和Windows上的Widevine功能。
  • 在离屏渲染模式下,不同的鼠标移动事件的MouseEvent.moveX和MouseEvent.moveY属性应该是不同的。
  • macOS上mach_port功能相关的JNI中出现多个错误导致JVM崩溃。

慧都是TeamDev官方友好合作伙伴,如果您对jxbrowser感兴趣,可以了解具体授权价格和使用机制。

标签:

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


为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP