.NET集成组件DotNetBrowser 2.0时代来临!支持.NET Core 2.2

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的支持以及隐藏滚动条和禁用触摸菜单的功能,这对于信息亭应用程序特别有用。

架构

新架构的结构如下所示:

.NET集成组件DotNetBrowser 2.0时代来临!支持.NET Core 2.2

此更新引入了新的实体: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进程。

.NET集成组件DotNetBrowser 2.0时代来临!支持.NET Core 2.2

内加载的每个网页IBrowser都有一个main IFrame。该IFrame本身可能有子帧。您可以IFrame用来访问和使用DOM和JavaScript。例如:

C#

browser.MainFrameExecuteJavaScript("document.title = 'Hello';");

VB.NET

browser.MainFrameExecuteJavaScript("document.title = 'Hello';")

打印预览

使用此版本,可以显示标准的“ 打印预览”对话框,并在您或JavaScript打印网页时选择首选的打印选项:

.NET集成组件DotNetBrowser 2.0时代来临!支持.NET Core 2.2

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进行处理,非常感谢!

上一篇 2020年3月1日
下一篇 2020年3月1日

相关推荐

发表回复

登录后才能评论