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();
}
}
}
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();
}
}
}
См. также
Примечания