DotNetBrowser
外觀
開發者 | TeamDev |
---|---|
首次發佈 | 2015年4月6日 |
當前版本 | |
程式語言 | C#, C++ |
作業系統 | Microsoft Windows, Linux, macOS |
類型 | 軟件框架, 網頁瀏覽器 |
許可協議 | 專有軟件[3] |
網站 | https://teamdev.cn/dotnetbrowser |
DotNetBrowser 是一個專有的 .NET 庫,它提供了一個基於 Chromium 的引擎,可用於加載和顯示網頁。[4] [5][6] 自 2015 年以來,它一直由 TeamDev 開發和支持。
產品功能
[編輯]主要功能如下:
- 加載並顯示網頁。
- 將基於 Chromium 的瀏覽器作為 WPF 或 Windows Forms 控件嵌入到 .NET 桌面應用程式中 [7] 。
- 處理導航和網絡事件。
- 訪問已加載網頁的文檔對象模型。
- 在加載的網頁上執行 JavaScript,注入 .NET 對象並從 JavaScript[8][9][10] 調用它們
用途
[編輯]DotNetBrowser 的主要用途是將瀏覽器嵌入到各種 .NET 桌面應用程式中並顯示網頁。[11] DotNetBrowser 可以用作無頭瀏覽器。 無頭模式也適用於 Linux 和 macOS。
另一個已知的用例是創建基於網絡的自動服務終端應用程式[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();
}
}
另見
[編輯]外部連結
[編輯]- 官方網站
- DotNetBrowser 帮助中心, [2023-02-02], (原始內容存檔於2023-05-26) - DotNetBrowser 支持包含文檔和發行說明的網站。
- DotNetBrowser 示例, [2023-02-02], (原始內容存檔於2023-01-16) - 包含使用 DotNetBrowser 的各種示例的存儲庫。
參考文獻
[編輯]- ^ https://dotnetbrowser-support.teamdev.com/release-notes/2015/v1-0.html.
- ^ https://teamdev.com/dotnetbrowser/release-notes/2024/v2-27-1.html.
- ^ DotNetBrowser Product Licence Agreement. TeamDev. TeamDev. [12 March 2021]. (原始內容存檔於2021-06-15).
- ^ DotNetBrowser on StackOverflow. [14 March 2021]. (原始內容存檔於2021-06-14).
- ^ DotNetBrowser on NuGet. [14 March 2021]. (原始內容存檔於2021-05-19).
- ^ c # - i want to get location information with dotnetbrowser. [2023-02-02]. (原始內容存檔於2021-05-19).
- ^ Chromium Web Browser Control in .NET Applications. DZone. [2023-02-02]. (原始內容存檔於2021-05-19).
- ^ DotNetBrowser and invalid external method call. [2023-02-02]. (原始內容存檔於2021-05-19).
- ^ Using dotnetbrowser to call JavaScript function to c#. 14 June 2018.
- ^ The mutual call between the JS code of the DotNetBrowser internal page and the external C# code. [2023-02-02]. (原始內容存檔於2021-05-19).
- ^ Creating an HTML UI for Desktop .NET Applications. InfoQ. InfoQ. [12 March 2021]. (原始內容存檔於2021-05-19).
- ^ Mihika Kapoor. Frame Building with C# and VB.NET. medium.com. 2 July 2016 [17 May 2021]. (原始內容存檔於2021-05-17).
- ^ Using VSTO to develop Word AddIn, is there a third-party kernel that can replace webbrowser?. [21 May 2021]. (原始內容存檔於2021-05-21).