Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
xBrowser是將基于Chromium的瀏覽器與Java應(yīng)用程序集成,以處理和顯示HTML5,CSS3,JavaScript,F(xiàn)lash等。
JxBrowser更新至7.3,支持最新macOS Catalina,支持Java13,支持瀏覽器發(fā)起的URL請求,修復(fù)多項Bug,具體更新情況如下:
點擊最下方“了解更多”即可下載最新版JxBrowser
network.set(BeforeSendHeadersCallback.class, params -> { // Access the Browser instance initiated this URL request. params.browser().ifPresent(browser -> {}); return BeforeSendHeadersCallback.Response.proceed();});network.set(ReceiveHeadersCallback.class, params -> { // Access the Browser instance initiated this URL request. params.browser().ifPresent(browser -> {}); return ReceiveHeadersCallback.Response.proceed();});復(fù)制代碼
隨著當(dāng)今計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,Web技術(shù)由于其良好的跨平臺特性,其對于更新迭代較慢的工控行業(yè)的影響也越來越大。包括西門子在內(nèi)的工業(yè)自動化巨頭都將Web技術(shù)融入到自身最新控制系統(tǒng)中: WinCC Unified PCS7 neo等。但是在傳統(tǒng)的SCADA系統(tǒng)中,往往對于最新的Web技術(shù)的兼容性不夠理想。例如西門子公司的Wincc軟件,由于強(qiáng)大的功能和可擴(kuò)展性,在工控行業(yè)應(yīng)用廣泛,筆者在最近的項目中就遇到一個問題,因為某品牌稱重模塊的參數(shù)設(shè)置和校準(zhǔn)是通Web頁面來實現(xiàn)的,但是在用Wincc的WebBrowser Control控件時經(jīng)常會遇到一個問題,那就是新打開網(wǎng)頁的時候經(jīng)常會報瀏覽器腳本執(zhí)行錯誤,客戶不接受系統(tǒng)有報錯顯示,所以必須想辦法給予解決。通過查詢相關(guān)資料得知,Wincc的WebBrowser Control控件因為采用的舊的IE內(nèi)核的原因,對于JS腳本兼容性不夠好。
那么有什么辦法可以解決這個問題嗎?既然舊的IE內(nèi)核與JS兼容性不好,那么有沒有辦法可以給它換個完美兼容JS的內(nèi)核呢。西門子自帶的控件肯定是不能用了,那么只能自己制作一個支持.NET控件來實現(xiàn)了。
新建Visual Studio項目
新建一個Windows窗體控件庫項目,如下圖所示。
安裝CefSharp包
因為Visual Studio自帶的WebBrowser控件也是基于IE內(nèi)核,所以為了一勞永逸,我們需要安裝一個支持Chrome內(nèi)核的第三方包。右鍵點擊項目,選擇“管理NuGet程序包”,搜索CefSharp.WinForms,并下載最新版本,如下圖所示。
添加ChromiumWebBrowser控件
擴(kuò)展包正確安裝完成之后,在工具箱會多出兩個控件,將下圖中標(biāo)紅的控件添加到窗體控件中,并添加一個TextBox控件用于IP地址的顯示,如下圖所示。
將URL作為參數(shù)傳入用戶窗體控件
筆者的項目,稱重模塊是在瀏覽器中通過輸入IP地址進(jìn)行模塊校準(zhǔn),當(dāng)用戶自行實施校準(zhǔn)操作時,因為模塊比較多,加之IP地址又不好記。顯然,要用戶直接輸入IP地址操作是不夠友好的。所以需要在Wincc中根據(jù)不同的稱重模塊動態(tài)化的寫入IP地址,用戶只需要根據(jù)傳感器所在工藝流程圖的位置選擇對應(yīng)的模塊即可。IP地址將其作為參數(shù)傳入我們制作的.NET控件。為此我們需要為用戶窗體控件新增一個屬性,通過這個屬性來傳遞URL。在用戶窗體畫面雙擊空白處,進(jìn)入控件類的定義,新增一個名稱“IPAddress”,返回值類型為String的屬性,代碼如下圖所示。
加載URL
URL參數(shù)傳入之后,我們需要瀏覽器控件加載我們的URL,這里需要用到ChromiumWebBrowser控件的Load()方法加載我們的URL。代碼如下圖所示。
生成DLL文件
至此我們已經(jīng)完成控件的代碼編寫工作了,我們只需要輸出DLL文件就完成控件制作工作了,點擊生成解決方案就可以在輸出文件夾中輸出我們需要的DLL了,如下圖所示。
在Wincc中調(diào)用.NET控件
接著我們需要在Wincc中調(diào)用我們制作的控件,打開Wincc畫面編輯器,在控件欄選擇.NET控件,右鍵單擊添加。選擇名稱為Visual Studio中項目名稱的DLL。然后添加進(jìn)Wincc系統(tǒng)中。
動態(tài)化URL
控件添加成功后,拖放至畫面中,通過控件屬性,我們可以看到控件屬性中新增了一條名稱為“IPAddress”的屬性,這個屬性用來傳遞URL參數(shù),在這里我們可以輸入固定的值,也可以通過動態(tài)綁定Wincc的變量。
我們激活運(yùn)行之后打開網(wǎng)頁就不會出現(xiàn)腳本錯誤的問題了,同時也可以在項目中通過腳本自動關(guān)連到不同稱重模塊的參數(shù)與校準(zhǔn)界面,省掉用戶手動輸入IP地址的繁瑣,演示效果如下圖所示。
備注:本文中所用的開發(fā)軟件為:Visual Studio Community 2022 (64 位) Wincc7.4SP1+Upd16。
xBrowser是將基于Chromium的瀏覽器與Java應(yīng)用程序集成,以處理和顯示HTML5、CSS3、JavaScript、Flash等。
近日,JxBrowser v7.14發(fā)布啦! 在此版本中,Chromium引擎已升級到版本89,同時Chromium不再支持Flash,所有與Flash相關(guān)的功能均已從其源代碼中刪除,歡迎下載體驗。
點擊下載最新版JxBrowser
新增功能
Chromium 89
Chromium已更新至版本89.0.4389.90。此Chromium版本包含幾個重要的安全修復(fù)程序,因此建議您將JxBrowser升級到v7.14。
Flash EOL
Chromium不再支持Flash。所有與Flash相關(guān)的功能均已從其源代碼中刪除。在此版本中,也刪除了以下與Flash相關(guān)的API:
改進(jìn)措施
Bug修復(fù)
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。