JAVA浏览器控件JxBrowser v7.5全新上线!更轻松处理Dynamic Favicons

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

近日,JxBrowser v7.5发布啦(点击下载),JAVA应用程序集成控件JxBrowser更新至7.5,允许将JavaScript对象转换为JSON字符串,扩展了允许获取当前加载的网页的图标的功能,修复多项Bug。以下是具体的更新内容。

新增功能

  • JSON格式:JxBrowser 7.5允许将JavaScript对象转换为JSON字符串,并从JSON字符串获取JavaScript对象。例如:
    <pre>
    

Json json = frame.json();
JsObject jsObject = json.parse("{&quot;one&quot;:1,&quot;two&quot;:2}");
String jsObjectJson = json.stringify(jsObject);

  • 动态图标:此版本扩展了允许获取当前加载的网页的图标的功能,此功能在7.2中引入。由于某些网页会动态更改其图标,因此,决定启用JxBrowser,以便在加载的网页上的图标被更改时获得通知。方法如下:

    browser.on(FaviconChanged.class, event -> {
    Bitmap newFavicon = event.favicon();
    });


  • DOM API:在7.5中,使用JxBrowser 6中存在的以下方法扩展了DOM API:

    • Element.scrollIntoView(AlignTo alignTo)

    • Node.compareDocumentPosition(Node otherNode)



  • 渲染过程PID:此版本包含RenderProcessAPI和功能,允许获取Frame运行中的渲染过程的PID 。例如:

    frame.renderProcess().pid();


  • 导航:Navigation类现在具有browser()方法,该方法允许获取Navigation实例的Browser实例。

  • 导航事件:NavigationStarted和NavigationFinished事件具有isInMainFrame()方法,该方法指示是否在主框架中进行导航。

  • UrlRequest的IP地址:ReceiveHeadersCallback.Params类已使用ipAddress()方法扩展,该方法允许获取UrlRequest的IP地址。
  • 改进

    • 使用DOM和JavaScript对象时,此版本的性能更好。
    • 所有敏感信息(例如键盘和鼠标输入,密码等)都不会打印在调试日志消息中。
    • DefaultStartDownloadCallback中显示的“文件保存”对话框现在对于Swing和JavaFX实现都是模态的。
    • Navigation.loadUrlAndWait()方法现在可以处理当前加载的网页内部的导航(例如,对内部#链接的导航)。
    • 适用于Windows 32位和64位的所有Chromium二进制文件均使用有效且经授权的TeamDev签名进行签名。

    Bug修复

    • 修复IllegalStateException错误,当在硬件加速渲染模式下删除另一个BrowserView并关闭其Browser之后将BrowserView聚焦时。
    • 修复在非屏幕渲染模式下在加载的网页上进行主动渲染(例如播放HTML5视频)期间访问功能时,线程锁定。
    • 修复在Windows的屏幕外渲染模式下关闭“打印预览”对话框时,线程死锁问题。
    • 修复在Windows上以硬件加速渲染模式调整BrowserView大小时,由负宽度和高度引起的IllegalArgumentException错误。
    • 修复当关闭浏览器实例时,当它们的引擎仍处于活动状态时,内存泄漏。
    • 修复从容器中删除BrowserView组件时,发生内存泄漏。
    • 调整BrowserView大小时,macOS上的Chromium GPU进程中的内存泄漏。根本原因在于两种渲染模式下未发布的mach端口。万一所有可用端口都被占用,此泄漏可能会导致系统重新引导。
    • 修复调用XPathResult。 asSnapshotNodes()方法在应返回空集合时抛出XPathException错误。
    • 修复将当Document实例属于IFRAME时,Document.frame()方法返回错误的Frame。
    • 修复当HTTP标头在ReceiveHeadersCallback中被覆盖时,CanGetCookiesCallback回调未从Web服务器接收预期的cookie。
    • 修复将Swing BrowserView组件嵌入JTabbedPane容器时,Web内容显示在主屏幕的左上角。
    发布了133 篇原创文章 · 获赞 12 · 访问量 4万+

    猜你喜欢

    转载自blog.csdn.net/mnrssj/article/details/103781066
    今日推荐