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