DotNetBrowser

DotNetBrowser
Тип Framework, Браузер
Разработчик TeamDev
Написана на C#, C++
Операционная система Windows
Аппаратные платформы Windows[3], Linux[4] и macOS[4]
Последняя версия 2.15.1 (17 июня 2022; 2 года назад (2022-06-17))
Тестовая версия
Лицензия TeamDev [2]
Сайт teamdev.com/dotnetbrowser

DotNetBrowser — проприетарная .NET библиотека, основанная на Chromium. Предоставляет программно управляемый браузерный движок, который можно использовать для встраивания Chromium в приложения, загрузки и отображения страниц.[5] [6][7] Разрабатывается и поддерживается TeamDev с 2015 года.

Функциональность

Основными функциями библиотеки являются:

  • Загрузка и отображение веб-страниц.
  • Встраивание браузера в .NET приложения, написанные на WPF или Windows Forms.[8]
  • Обработка событий навигации и событий обмена данными с сервером.
  • Доступ к DOM загруженной страницы, включая поиск и изменение элементов.
  • Выполнение JavaScript на загруженной странице, возможность работы с JavaScript объектами из .NET и с .NET объектами из JavaScript[9][10][11]

Использование

Наиболее часто распространенный вариант использования библиотеки — это встраивание браузера в различные .NET приложения для отображения веб-страниц и работы с ними.[12] DotNetBrowser также можно использовать без вывода на экран в консольных или серверных приложениях.

Другие популярные варианты использования включают создание web-based приложений для информационных киосков и киосков самообслуживания[13] и надстроек VSTO для приложений Microsoft Office.[14]

Другие варианты и примеры использования описаны в репозитории DotNetBrowser Examples.

Примеры встраивания

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 на форму
            Controls.Add(browserView);
            Closed += Form1Closed;
        }
         
        private void Form1Closed(object sender, EventArgs e) {
            browser.Dispose();
            engine.Dispose();
        }
    }
}

См. также

Примечания

  1. https://dotnetbrowser-support.teamdev.com/release-notes/2015/v1-0.html
  2. DotNetBrowser Product Licence Agreement. TeamDev. TeamDev. Дата обращения: 12 июля 2021. Архивировано 15 июня 2021 года.
  3. https://dotnetbrowser-support.teamdev.com/roadmap/
  4. 1 2 https://dotnetbrowser-support.teamdev.com/release-notes/2022/v2-17.html
  5. DotNetBrowser на StackOverflow. Дата обращения: 12 июля 2021. Архивировано 14 июня 2021 года.
  6. DotNetBrowser на NuGet. Дата обращения: 12 июля 2021. Архивировано 19 мая 2021 года.
  7. c # - i want to get location information with dotnetbrowser. Дата обращения: 14 июля 2021. Архивировано 19 мая 2021 года.
  8. Chromium Web Browser Control in .NET Applications. DZone. Дата обращения: 14 июля 2021. Архивировано 19 мая 2021 года.
  9. DotNetBrowser and invalid external method call. Дата обращения: 14 июля 2021. Архивировано 19 мая 2021 года.
  10. Using dotnetbrowser to call JavaScript function to c#.
  11. The mutual call between the JS code of the DotNetBrowser internal page and the external C# code. Дата обращения: 14 июля 2021. Архивировано 19 мая 2021 года.
  12. Creating an HTML UI for Desktop .NET Applications. InfoQ. InfoQ. Дата обращения: 12 июля 2021. Архивировано 19 мая 2021 года.
  13. Frame Building with C# and VB.NET. medium.com. Дата обращения: 12 июля 2021. Архивировано 17 мая 2021 года.
  14. Using VSTO to develop Word AddIn, is there a third-party kernel that can replace webbrowser? Дата обращения: 12 июля 2021. Архивировано 21 мая 2021 года.