原創|產品更新|編輯:李顯亮|2020-04-02 13:36:26.153|閱讀 765 次
概述:DotNetBrowser全面進入2.0時代!支持.NET Core 2.2以及Windows上的3.0!同時擴展了新的類,接口,方法,事件和處理程序,還重新設計了圖書館的體系結構!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DotNetBrowser是一個.NET庫,允許將基于Chromium的WPF和WinForms組件嵌入到.NET應用程序中,以顯示使用HTML5,CSS3,JavaScript,Silverlight等構建的現代網頁。
DotNetBrowser全面進入2.0時代!支持.NET Core 2.2以及Windows上的3.0!同時擴展了新的類,接口,方法,事件和處理程序,還重新設計了圖書館的體系結構!還沒有使用過可以點擊下方鏈接下載哦~
DotNetBrowser迎來v2.0版本更新,為了方便大家盡可能順利過度新版本,我們特意準備了本指南將幫助您了解新版本都要哪些新增與改動。
新增與改善
架構
新架構的結構如下所示:
此更新引入了新的實體:IEngine和IFrame。使用,IEngine您可以訪問Chromium核心引擎功能。這是創建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進程。
內加載的每個網頁IBrowser都有一個main IFrame。該IFrame本身可能有子幀。您可以IFrame用來訪問和使用DOM和JavaScript。例如:
C#
browser.MainFrame?.ExecuteJavaScript("document.title = 'Hello';");
VB.NET
browser.MainFrame?.ExecuteJavaScript("document.title = 'Hello';")
打印預覽
使用此版本,可以顯示標準的“ 打印預覽”對話框,并在您或JavaScript打印網頁時選擇首選的打印選項:
JavaScript和DOM
自動類型轉換
JavaScript和.NET使用不同的原始類型。DotNetBrowser 2.0實現了從JavaScript到.NET類型的自動類型轉換,反之亦然?,F在,可以編寫如下代碼:
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
自動類型轉換
自動類型轉換使得可以訪問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)
網絡
該版本的庫允許您通過攔截所有URL請求來模擬Web服務器,并以同步和異步方式提供自定義URL響應。這是有關如何攔截請求和發送響應數據的示例:
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啟用專有編解碼器,默認情況下將其禁用,如下所示:
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
現在,可以啟用稱為Widevine的專有組件,該組件允許在Netflix,Amazon Prime,Spotify和其他使用Widevine分發內容的Web服務上播放視頻/音頻內容。默認情況下,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())
網站圖標
現在可以通過該IBrowser.Favicon屬性訪問當前加載的網頁的收藏夾圖標。IBrowser.FaviconChanged網頁圖標已更改時,也會發生事件。
隱藏滾動條
通過此更新,您可以使用以下方法隱藏滾動條:
C#
browser.Settings.ScrollbarsHidden = true;
VB.NET
browser.Settings.ScrollbarsHidden = True
調用此方法后,IBrowser實例中加載的網頁將不再顯示滾動條。它對于信息亭應用程序和網頁圖像很有用。
禁用觸摸菜單
該EngineOptions具有允許在Windows 10的觸摸設備禁用觸摸菜單的附加選項。以下代碼段演示了如何完成此操作:
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。
如果你對我們的產品感興趣,想購買正版授權,可聯系咨詢~
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn