彩票走势图

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

原创|产品更新|编辑:李显亮|2020-04-02 13:36:26.153|阅读 712 次

概述: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最新试用版<<


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:\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进程。

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

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

C#

browser.MainFrame?.ExecuteJavaScript("document.title = 'Hello';");

VB.NET

browser.MainFrame?.ExecuteJavaScript("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'").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@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP