原創(chuàng)|產(chǎn)品更新|編輯:李顯亮|2020-04-02 13:36:26.153|閱讀 765 次
概述:DotNetBrowser全面進(jìn)入2.0時代!支持.NET Core 2.2以及Windows上的3.0!同時擴(kuò)展了新的類,接口,方法,事件和處理程序,還重新設(shè)計了圖書館的體系結(jié)構(gòu)!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DotNetBrowser是一個.NET庫,允許將基于Chromium的WPF和WinForms組件嵌入到.NET應(yīng)用程序中,以顯示使用HTML5,CSS3,JavaScript,Silverlight等構(gòu)建的現(xiàn)代網(wǎng)頁。
DotNetBrowser全面進(jìn)入2.0時代!支持.NET Core 2.2以及Windows上的3.0!同時擴(kuò)展了新的類,接口,方法,事件和處理程序,還重新設(shè)計了圖書館的體系結(jié)構(gòu)!還沒有使用過可以點擊下方鏈接下載哦~
DotNetBrowser迎來v2.0版本更新,為了方便大家盡可能順利過度新版本,我們特意準(zhǔn)備了本指南將幫助您了解新版本都要哪些新增與改動。
新增與改善
架構(gòu)
新架構(gòu)的結(jié)構(gòu)如下所示:
此更新引入了新的實體:IEngine和IFrame。使用,IEngine您可以訪問Chromium核心引擎功能。這是創(chuàng)建IEngine實例的方法:
C#
IEngine engine = EngineFactory.Create(new EngineOptions.Builder { RenderingMode = RenderingMode.HardwareAccelerated, Language = DotNetBrowser.Ui.Language.German, UserDataDirectory = @"C:\Users\Me\DotNetBrowser" } .Build());
VB.NET
Dim engine As IEngine = EngineFactory.Create(New EngineOptions.Builder With { .RenderingMode = RenderingMode.HardwareAccelerated, .Language = DotNetBrowser.Ui.Language.German, .UserDataDirectory = "C:\Users\Me\DotNetBrowser" }.Build())
每個IEngine實例都使用單獨的Chromium Main進(jìn)程。
內(nèi)加載的每個網(wǎng)頁IBrowser都有一個main IFrame。該IFrame本身可能有子幀。您可以IFrame用來訪問和使用DOM和JavaScript。例如:
C#
browser.MainFrame?.ExecuteJavaScript("document.title = 'Hello';");
VB.NET
browser.MainFrame?.ExecuteJavaScript("document.title = 'Hello';")
打印預(yù)覽
使用此版本,可以顯示標(biāo)準(zhǔn)的“ 打印預(yù)覽”對話框,并在您或JavaScript打印網(wǎng)頁時選擇首選的打印選項:
JavaScript和DOM
自動類型轉(zhuǎn)換
JavaScript和.NET使用不同的原始類型。DotNetBrowser 2.0實現(xiàn)了從JavaScript到.NET類型的自動類型轉(zhuǎn)換,反之亦然。現(xiàn)在,可以編寫如下代碼:
C#
string name = mainFrame.ExecuteJavaScript("'Hello'").Result; double number = mainFrame.ExecuteJavaScript("123").Result; bool flag = mainFrame.ExecuteJavaScript("true").Result; IJsObject window = mainFrame.ExecuteJavaScript("window").Result;
VB.NET
Dim name As String = mainFrame.ExecuteJavaScript(Of String)("'Hello'").Result Dim number As Double = mainFrame.ExecuteJavaScript(Of Double)("123").Result Dim flag As Boolean = mainFrame.ExecuteJavaScript(Of Boolean)("true").Result Dim window As IJsObject = mainFrame.ExecuteJavaScript(Of IJsObject)("window").Result
自動類型轉(zhuǎn)換
自動類型轉(zhuǎn)換使得可以訪問JavaScript DOM對象并通過DotNetBrowser DOM API使用它們。例如:
C#
IDocument document = frame.ExecuteJavaScript("document").Result as IDocument;
VB.NET
Dim document As IDocument = TryCast(frame.ExecuteJavaScript("document").Result, IDocument)
這是如何使用JavaScript DOM對象以及使用JavaScript對象的方法:
C#
IJsObject document = frame.ExecuteJavaScript("document").Result as IJsObject;
VB.NET
Dim document As IDocument = TryCast(frame.ExecuteJavaScript("document").Result, IDocument)
網(wǎng)絡(luò)
該版本的庫允許您通過攔截所有URL請求來模擬Web服務(wù)器,并以同步和異步方式提供自定義URL響應(yīng)。這是有關(guān)如何攔截請求和發(fā)送響應(yīng)數(shù)據(jù)的示例:
C#
network.InterceptRequestHandler = new Handler(p => { UrlRequestJobOptions options = new UrlRequestJobOptions { Headers = new List{ new HttpHeader("Content-Type", "text/plain"), new HttpHeader("Content-Type", "charset=utf-8") } }; UrlRequestJob job = network.CreateUrlRequestJob(p.UrlRequest, options); Task.Run(() => { // The request processing is performed in a background thread // in order to avoid freezing the web page. job.Write(Encoding.UTF8.GetBytes("My data")); job.Complete(); }); return InterceptRequestResponse.Intercept(job); });
VB.NET
network.InterceptRequestHandler = New Handler(Of InterceptRequestParameters, InterceptRequestResponse)(Function(p) Dim options = New UrlRequestJobOptions With { .Headers = New List(Of HttpHeader) From { New HttpHeader("Content-Type", "text/plain"), New HttpHeader("Content-Type", "charset=utf-8") } } Dim job As UrlRequestJob = network.CreateUrlRequestJob(p.UrlRequest, options) Task.Run(Sub() ' The request processing is performed in a background thread ' in order to avoid freezing the web page. job.Write(Encoding.UTF8.GetBytes("My data")) job.Complete() End Sub) Return InterceptRequestResponse.Intercept(job) End Function)
H.264,MP4,AAC
從此版本開始,不再需要*c使用啟用的專有編解碼器來請求單獨的版本來播放H.264,MP4和AAC格式。您可以通過API啟用專有編解碼器,默認(rèn)情況下將其禁用,如下所示:
C#
engine = EngineFactory.Create(new EngineOptions.Builder { RenderingMode = renderingMode, ProprietaryFeatures = ProprietaryFeatures.H264 | ProprietaryFeatures.Aac }.Build());
VB.NET
engine = EngineFactory.Create(New EngineOptions.Builder With { .RenderingMode = renderingMode, .ProprietaryFeatures = ProprietaryFeatures.H264 Or ProprietaryFeatures.Aac }.Build())
Widevine
現(xiàn)在,可以啟用稱為Widevine的專有組件,該組件允許在Netflix,Amazon Prime,Spotify和其他使用Widevine分發(fā)內(nèi)容的Web服務(wù)上播放視頻/音頻內(nèi)容。默認(rèn)情況下,Widevine組件是禁用的。使用以下代碼將其啟用:
C#
engine = EngineFactory.Create(new EngineOptions.Builder { RenderingMode = renderingMode, ProprietaryFeatures = ProprietaryFeatures.Widevine }.Build());
VB.NET
engine = EngineFactory.Create(New EngineOptions.Builder With { .RenderingMode = renderingMode, .ProprietaryFeatures = ProprietaryFeatures.Widevine }.Build())
網(wǎng)站圖標(biāo)
現(xiàn)在可以通過該IBrowser.Favicon屬性訪問當(dāng)前加載的網(wǎng)頁的收藏夾圖標(biāo)。IBrowser.FaviconChanged網(wǎng)頁圖標(biāo)已更改時,也會發(fā)生事件。
隱藏滾動條
通過此更新,您可以使用以下方法隱藏滾動條:
C#
browser.Settings.ScrollbarsHidden = true;
VB.NET
browser.Settings.ScrollbarsHidden = True
調(diào)用此方法后,IBrowser實例中加載的網(wǎng)頁將不再顯示滾動條。它對于信息亭應(yīng)用程序和網(wǎng)頁圖像很有用。
禁用觸摸菜單
該EngineOptions具有允許在Windows 10的觸摸設(shè)備禁用觸摸菜單的附加選項。以下代碼段演示了如何完成此操作:
C#
IEngine engine = EngineFactory.Create(new EngineOptions.Builder { TouchMenuDisabled = true } .Build());
VB.NET
engine = EngineFactory.Create(New EngineOptions.Builder With { .TouchMenuDisabled = True }.Build())
功能下降
從此版本開始,DotNetBrowser不再支持.NET Framework 4.0。
如果你對我們的產(chǎn)品感興趣,想購買正版授權(quán),可聯(lián)系咨詢~
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn