DotNetBrowser

来自Local Chinese Wikipedia
imported>Taeas2024年1月17日 (三) 08:11的版本 (维护清理)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索
DotNetBrowser
开发者TeamDev
首次发布2015年4月6日,​11年前​(2015-04-06
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    编程语言C#, C++
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统Microsoft Windows, Linux, macOS
      类型软件框架, 网页浏览器
      许可协议专有软件[1]

      DotNetBrowser 是一个专有的 .NET 库,它提供了一个基于 Chromium 的引擎,可用于加载和显示网页。[2] [3][4] 自 2015 年以来,它一直由 TeamDev 开发和支持。

      产品功能[编辑]

      主要功能如下:

      • 加载并显示网页。
      • 将基于 Chromium 的浏览器作为 WPFWindows Forms 控件嵌入到 .NET 桌面应用程序中 [5]
      • 处理导航和网络事件。
      • 访问已加载网页的文档对象模型
      • 在加载的网页上执行 JavaScript,注入 .NET 对象并从 JavaScript[6][7][8] 调用它们

      用途[编辑]

      DotNetBrowser 的主要用途是将浏览器嵌入到各种 .NET 桌面应用程序中并显示网页。[9] DotNetBrowser 可以用作无头浏览器。 无头模式也适用于 LinuxmacOS

      另一个已知的用例是创建基于网络的自动服务终端应用程序[10] 和 Microsoft Office 的 VSTO 插件。[11]

      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 的各种示例的存储库。

      参考文献[编辑]

      1. DotNetBrowser Product Licence Agreement. TeamDev. TeamDev. [12 March 2021]. (原始内容存档于2021-06-15). 
      2. DotNetBrowser on StackOverflow. [14 March 2021]. (原始内容存档于2021-06-14). 
      3. DotNetBrowser on NuGet. [14 March 2021]. (原始内容存档于2021-05-19). 
      4. c # - i want to get location information with dotnetbrowser. [2023-02-02]. (原始内容存档于2021-05-19). 
      5. Chromium Web Browser Control in .NET Applications. DZone. [2023-02-02]. (原始内容存档于2021-05-19). 
      6. DotNetBrowser and invalid external method call. [2023-02-02]. (原始内容存档于2021-05-19). 
      7. Using dotnetbrowser to call JavaScript function to c#. 14 June 2018. 
      8. The mutual call between the JS code of the DotNetBrowser internal page and the external C# code. [2023-02-02]. (原始内容存档于2021-05-19). 
      9. Creating an HTML UI for Desktop .NET Applications. InfoQ. InfoQ. [12 March 2021]. (原始内容存档于2021-05-19). 
      10. Mihika Kapoor. Frame Building with C# and VB.NET. medium.com. 2 July 2016 [17 May 2021]. (原始内容存档于2021-05-17). 
      11. Using VSTO to develop Word AddIn, is there a third-party kernel that can replace webbrowser?. [21 May 2021]. (原始内容存档于2021-05-21).