JAVA应用程序浏览器集成控件JxBrowser更新至7.17, 在此版本中,此版本支持 Chromium 配置文件、JavaScript Promise API、 络连接状态更改时的通知以及许多改进和修复,欢迎下载体验。
新增功能
Chromium 91
Chromium已经更新到91.0.4472.114版本。这个Chromium版本包括几个重要的安全修复,一些Chromium的功能已经被删除或改变。
配置文件
在这个版本中,我们扩展了API的功能,允许管理Chromium配置文件。现在,该架构有如下结构。

每个引擎都有一个默认的配置文件,你可以通过以下方式访问:
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进行处理,非常感谢!