Java应用程序浏览器集成控件JxBrowser v7.17新版发布!Chromium升级至v91

JAVA应用程序浏览器集成控件JxBrowser更新至7.17, 在此版本中,此版本支持 Chromium 配置文件、JavaScript Promise API、网络连接状态更改时的通知以及许多改进和修复,欢迎下载体验。

新增功能

Chromium 91

Chromium已经更新到91.0.4472.114版本。这个Chromium版本包括几个重要的安全修复,一些Chromium的功能已经被删除或改变。

配置文件

在这个版本中,我们扩展了API的功能,允许管理Chromium配置文件。现在,该架构有如下结构。

Java应用程序浏览器集成控件JxBrowser v7.17新版发布!Chromium升级至v91

每个引擎都有一个默认的配置文件,你可以通过以下方式访问:

Profile defaultProfile = engine.profiles().defaultProfile();

要创建一个新的普通或隐身档案,请使用以下API:

Profiles profiles = engine.profiles();Profile myProfile = profiles.newProfile("MyProfile");Profile myIncognitoProfile = profiles.newIncognitoProfile("MyIncognitoProfile");

每个浏览器实例都有一个配置文件。要为特定的配置文件创建一个浏览器实例,请使用以下方法:

Browser browser = profiles.defaultProfile().newBrowser();...Profile myProfile = profiles.newProfile("MyProfile");Browser browser = myProfile.newBrowser();

为了向后兼容,我们没有改变引擎的接口。它只是将其调用委托给了默认的配置文件。比如说:

Browser browser = engine.newBrowser();// is equivalent ofBrowser browser = engine.profiles().defaultProfile().newBrowser();
CookieStore cookieStore = engine.cookieStore();// is equivalent ofCookieStore cookieStore = engine.profiles().defaultProfile().cookieStore();

如果你用用户数据目录配置了Engine,那么所有创建的profile将在应用程序重启之后被恢复,除非你通过Profiles.delete(Profile)删除一个profile。

JS Promises

新版本从JavaScript到Java类型的自动类型转换,反之亦然,已经扩展了对JavaScript Promise的支持。现在,可以通过全新的JsPromise类型与JavaScript Promises一起工作。

JsPromise promise = frame.executeJavaScript(        "new Promise(function(resolve, reject) {n"                + "    setTimeout(function() {n"                + "        resolve('Hello Java!');n"                + "    }, 2000);"                + "})");promise.then(results -> {    System.out.println(results[0]);    return promise;}).then(results -> {    System.out.println(results[0]);    return promise;}).catchError(errors -> {    System.out.println(errors[0]);    return promise;});

网络连接状态

Chromium在内部跟踪互联网的连接状态。当互联网连接中断后又恢复时,Chromium会检测到这一点并以编程方式重新加载当前加载的网页。在这个版本中,我们用这个功能扩展了API。现在,当网络连接状态发生变化时,你可以得到通知。比如说:

network.on(NetworkChanged.class, e -> {    // If the connection type is TYPE_NONE, there is no connection.    if (e.connectionType() == ConnectionType.TYPE_NONE) {        // The network connection has been dropped. We are offline.    } else {        // The network connection has been restored.    }});

增强功能

  • NavigationFinished事件已被扩展为isFragmentNavigation(),它表明是否已对同一文档中的一个片段进行了导航。

Bug修复

  • 当JavaFX BrowserView被嵌入到TabPane中时,原生Chromium窗口被分离,在硬件加速渲染模式下,Linux上最小化后,舞台被恢复。
  • 在使用设置的桌面亲和力API后关闭浏览器时,Chromium崩溃。
  • 在硬件加速渲染模式下,Linux上显示Java窗口时,浏览器会窃取输入焦点。
  • 试图在 Frame.viewSource() 打开的弹出式浏览器中执行 UI 相关的方法,在 Windows 上会导致本地崩溃。
  • 在macOS上用Swing BrowserView显示的网页内的D&D丢失的下降数据。
  • 在离屏渲染模式下支持Swing D&D功能中的自定义文本表示。


是TeamDev官方友好合作伙伴,如果您对jxbrowser感兴趣,可以联系在线客服了解具体授权价格和使用机制。
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月19日
下一篇 2021年6月19日

相关推荐

发表回复

登录后才能评论