DotNetBrowser

DotNetBrowser 是一个专有的 .NET 库,它提供了一个基于 Chromium 的引擎,可用于加载和显示网页。[4] [5][6] 自 2015 年以来,它一直由 TeamDev 开发和支持。

DotNetBrowser
開發者TeamDev
首次发布2015年4月6日2015-04-06
当前版本
  • 1.0 (2015年4月6日;初始版本)[1]
  • 2.25.1 (2024年1月22日;穩定版本)[2]
编程语言C#, C++
操作系统Microsoft Windows, Linux, macOS
类型软件框架, 网页浏览器
许可协议专有软件[3]
网站https://teamdev.cn/dotnetbrowser

产品功能

主要功能如下:

  • 加载并显示网页。
  • 将基于 Chromium 的浏览器作为 WPFWindows Forms 控件嵌入到 .NET 桌面应用程序中 [7]
  • 处理导航和网络事件。
  • 访问已加载网页的文档对象模型
  • 在加载的网页上执行 JavaScript,注入 .NET 对象并从 JavaScript[8][9][10] 调用它们

用途

DotNetBrowser 的主要用途是将浏览器嵌入到各种 .NET 桌面应用程序中并显示网页。[11] DotNetBrowser 可以用作无头浏览器。 无头模式也适用于 LinuxmacOS

另一个已知的用例是创建基于网络的自动服务终端应用程序[12] 和 Microsoft Office 的 VSTO 插件。[13]

DotNetBrowser 示例存储库 页面存档备份,存于 中提供了更多示例和用例。

例子

WPF

XAML 标记

<Window x:Class="Sample.Wpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:wpf="clr-namespace:DotNetBrowser.Wpf;assembly=DotNetBrowser.Wpf"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Closed="MainWindow_OnClosed">
    <Grid>
        <wpf:BrowserView x:Name="browserView"/>
    </Grid>
</Window>

C#

using System;
using System.Windows
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;

namespace Sample.Wpf;

public partial class MainWindow : Window
{
    private readonly IEngine engine;
    private readonly IBrowser browser;
     
    public MainWindow()
    {
        InitializeComponent();
         
        // 创建和初始化 IEngine
        engine = EngineFactory.Create();
         
        // 创建 IBrowser
        browser = engine.CreateBrowser();
        browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
         
        // 初始化 WPF BrowserView 控件
        browserView.InitializeFrom(browser);
    }
     
    private void MainWindow_OnClosed(object sender, EventArgs e)
    {
        browser.Dispose();
        engine.Dispose();
    }
}

Windows Forms

C#

using System;
using System.Windows.Forms;
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;
using DotNetBrowser.WinForms;

namespace Sample.WinForms;

public partial class Form1 : Form
{
    private readonly IEngine engine;
    private readonly IBrowser browser;
     
    public Form1()
    {
        InitializeComponent();
         
        // 创建和初始化 IEngine
        engine = EngineFactory.Create();
         
        // 创建 Windows Forms BrowserView 控件
        BrowserView browserView = new BrowserView() {
            Dock = DockStyle.Fill
        };
         
        // 创建 IBrowser
        browser = engine.CreateBrowser();
        browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
         
        //  初始化 Windows Forms BrowserView 控件
        browserView.InitializeFrom(browser);
         
        // 将 BrowserView 控件添加到 Form 中
        Controls.Add(browserView);
        Closed += Form1Closed;
    }
     
    private void Form1Closed(object sender, EventArgs e)
    {
        browser.Dispose();
        engine.Dispose();
    }
}

另见

外部链接

  • 官方网站
  • , [2023-02-02], (原始内容存档于2023-05-26) - DotNetBrowser 支持包含文档和发行说明的网站。
  • , [2023-02-02], (原始内容存档于2023-01-16) - 包含使用 DotNetBrowser 的各种示例的存储库。

参考文献

  1. https://dotnetbrowser-support.teamdev.com/release-notes/2015/v1-0.html.
  2. https://teamdev.com/dotnetbrowser/release-notes/2024/v2-25-1.html.
  3. . TeamDev. TeamDev. [12 March 2021]. (原始内容存档于2021-06-15).
  4. . [14 March 2021]. (原始内容存档于2021-06-14).
  5. . [14 March 2021]. (原始内容存档于2021-05-19).
  6. . [2023-02-02]. (原始内容存档于2021-05-19).
  7. . DZone. [2023-02-02]. (原始内容存档于2021-05-19).
  8. . [2023-02-02]. (原始内容存档于2021-05-19).
  9. . 14 June 2018.
  10. . [2023-02-02]. (原始内容存档于2021-05-19).
  11. . InfoQ. InfoQ. [12 March 2021]. (原始内容存档于2021-05-19).
  12. Mihika Kapoor. . medium.com. 2 July 2016 [17 May 2021]. (原始内容存档于2021-05-17).
  13. . [21 May 2021]. (原始内容存档于2021-05-21).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.