原創|產品更新|編輯:李顯亮|2021-07-22 11:16:56.437|閱讀 465 次
概述:JAVA應用程序瀏覽器集成控件JxBrowser更新至7.17, 在此版本中,此版本支持 Chromium 配置文件、JavaScript Promise API、網絡連接狀態更改時的通知以及許多改進和修復,歡迎下載體驗。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
JxBrowser是將基于Chromium的瀏覽器與Java應用程序集成,以處理和顯示HTML5、CSS3、JavaScript、Flash等。
近日,JxBrowser v7.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 of Browser browser = engine.profiles().defaultProfile().newBrowser();
CookieStore cookieStore = engine.cookieStore(); // is equivalent of CookieStore 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. } });
增強功能
Bug修復
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn