DotNetBrowser全面进入2.0时代!支持.NET Core 2.2以及Windows上的3.0!同时扩展了新的类,接口,方法,事件和处理程序,还重新设计了图书馆的体系结构!
DotNetBrowser是一个.NET库,允许将基于Chromium的WPF和WinForms组件嵌入到.NET应用程序中,以显示使用HTML5,CSS3,JavaScript,Silverlight等构建的现代 页。
DotNetBrowser全面进入2.0时代!支持.NET Core 2.2以及Windows上的3.0!同时扩展了新的类,接口,方法,事件和处理程序,还重新设计了图书馆的体系结构!还没有使用过可以点击下方链接下载哦~
>>欢迎免费下载DotNetBrowser最新试用版<<
DotNetBrowser迎来v2.0版本更新,为了方便大家尽可能顺利过度新版本,我们特意准备了本指南将帮助您了解新版本都要哪些新增与改动。
新增与改善
- 从此版本开始,DotNetBrowser与.NET Standard 2.0兼容,这意味着您现在可以在.NET Framework和Windows的.NET Core应用程序中集成现代Web内容。
- 现在,通过重新思考该库的体系结构,您可以一次创建并运行多个独立的Browser实例,从而增强了应用程序的稳定性。
- 新API引入的一系列新功能包括能够在Netflix,Amazon Prime,Spotify等上播放视频/音频内容,以及使用标准的“打印预览”对话框方便地打印Web内容的功能。
- 从外观上讲,我们添加了对Favicon的支持以及隐藏滚动条和禁用触摸菜单的功能,这对于信息亭应用程序特别有用。
架构
新架构的结构如下所示:
此更新引入了新的实体:IEngine和IFrame。使用,IEngine您可以访问Chromium核心引擎功能。这是创建IEngine实例的方法:
C#
IEngine engine = EngineFactory.Create(new EngineOptions.Builder{ RenderingMode = RenderingMode.HardwareAccelerated, Language = DotNetBrowser.Ui.Language.German, UserDataDirectory = @"C:UsersMeDotNetBrowser"}.Build());
VB.NET
Dim engine As IEngine = EngineFactory.Create(New EngineOptions.Builder With { .RenderingMode = RenderingMode.HardwareAccelerated, .Language = DotNetBrowser.Ui.Language.German, .UserDataDirectory = "C:UsersMeDotNetBrowser" }.Build())
每个IEngine实例都使用单独的Chromium Main进程。
内加载的每个 页IBrowser都有一个main IFrame。该IFrame本身可能有子帧。您可以IFrame用来访问和使用DOM和JavaScript。例如:
C#
browser.MainFrameExecuteJavaScript("document.title = 'Hello';");
VB.NET
browser.MainFrameExecuteJavaScript("document.title = 'Hello';")
打印预览
使用此版本,可以显示标准的“ 打印预览”对话框,并在您或JavaScript打印 页时选择首选的打印选项:
JavaScript和DOM
自动类型转换
JavaScript和.NET使用不同的原始类型。DotNetBrowser 2.0实现了从JavaScript到.NET类型的自动类型转换,反之亦然。现在,可以编写如下代码:
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'").ResultDim number As Double = mainFrame.ExecuteJavaScript(Of Double)("123").ResultDim flag As Boolean = mainFrame.ExecuteJavaScript(Of Boolean)("true").ResultDim 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。
如果你对我们的产品感兴趣,想购买正版授权,可联系客服咨询~
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!