DotNetBrowser
DotNetBrowser — проприетарная .NET библиотека, основанная на Chromium. Предоставляет программно управляемый браузерный движок, который можно использовать для встраивания Chromium в приложения, загрузки и отображения страниц.[3] [4][5] Разрабатывается и поддерживается TeamDev с 2015 года.
DotNetBrowser | |
---|---|
Тип | Framework, Браузер |
Разработчик | TeamDev |
Написана на | C#, C++ |
Операционная система | Windows |
Аппаратная платформа | Microsoft Windows[1] |
Последняя версия | 2.12 (14 января, 2022) |
Лицензия | TeamDev [2] |
Сайт | teamdev.com/dotnetbrowser |
Функциональность
Основными функциями библиотеки являются:
- Загрузка и отображение веб-страниц.
- Встраивание браузера в .NET приложения, написанные наWPF или Windows Forms.[6]
- Обработка событий навигации и событий обмена данными с сервером.
- Доступ к DOM загруженной страницы, включая поиск и изменение элементов.
- Выполнение JavaScript на загруженной странице, возможность работы с JavaScript обьектами из .NET и с .NET обьектами из JavaScript[7][8][9]
Использование
Наиболее часто распространенный вариант использования библиотеки — это встраивание браузера в различные .NET приложения для отображения веб-страниц и работы с ними.[10] DotNetBrowser также можно использовать без вывода на экран в консольных или серверных приложениях.
Другие популярные варианты использования включают создание web-based приложений для информационных киосков и киосков самообслуживания[11] и надстроек VSTO для приложений Microsoft Office.[12]
Другие варианты и примеры использования описаны в репозитории 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/roadmap/
- DotNetBrowser Product Licence Agreement . TeamDev. TeamDev. Дата обращения: 12 июля 2021.
- DotNetBrowser на StackOverflow . Дата обращения: 12 июля 2021.
- DotNetBrowser на NuGet . Дата обращения: 12 июля 2021.
- c # - i want to get location information with dotnetbrowser .
- Chromium Web Browser Control in .NET Applications . DZone.
- DotNetBrowser and invalid external method call .
- 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 .
- Creating an HTML UI for Desktop .NET Applications . InfoQ. InfoQ. Дата обращения: 12 июля 2021.
- Frame Building with C# and VB.NET . medium.com. Дата обращения: 12 июля 2021.
- Using VSTO to develop Word AddIn, is there a third-party kernel that can replace webbrowser? . Дата обращения: 12 июля 2021.