Chromium

本指南介绍了如何使用 DotNetBrowser 使用的 Chromium 构建。

您无需在目标环境中安装 Chromium 或 Google Chrome 即可使用 DotNetBrowser,因为它使用并部署了自己的 Chromium 版本。

二进制文件

每个受支持平台的 Chromium 二进制文件位于相应的 DotNetBrowser DLLs 中:

  • DotNetBrowser.Chromium.Win-x86.dll – 适用于 Windows 32 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Win-x64.dll – 适用于 Windows 64 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Win-arm64.dll – 适用于 Windows ARM64 的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Linux-x64.dll – 适用于 Linux 64 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Linux-arm64.dll – 适用于 Linux ARM64 的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.macOS-x64.dll – 适用于 macOS 64 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.macOS-arm64.dll – 适用于 macOS ARM64 (Apple Silicon) 的 Chromium 二进制文件。

要使用 Chromium,您需要提取其二进制文件。

提取

DotNetBrowser 在首次启动期间从相应的 DLL 中提取目标平台的 Chromium 二进制文件。

在 Windows 上,它们位于 %LocalAppData%\Temp\dotnetbrowser-chromium 目录中。

在 macOS 和 Linux 上,二进制文件被提取到用户的临时目录中。

DotNetBrowser 检查目录是否包含所需的 Chromium 文件。 如果未找到文件,它会从应用程序中引用的 DLL 中提取二进制文件。

您可以自定义提取二进制文件的目录的默认路径,或者以编程方式提取二进制文件并告诉库它们所在的位置:

EngineOptions options = new EngineOptions.Builder
{
    ChromiumDirectory = @"C:\Users\Me\.DotNetBrowser"
}
.Build();
binariesExtractor = new ChromiumBinariesExtractor();
binariesExtractor.ExtractBinariesIfNecessary(options);
// ...
engine = EngineFactory.Create(options);
Dim options = New EngineOptions.Builder With 
{
    .ChromiumDirectory = "C:\Users\Me\.DotNetBrowser\chromium"
}.Build()
Dim binariesExtractor = New ChromiumBinariesExtractor()
binariesExtractor.ExtractBinariesIfNecessary(options)
' ...
engine = EngineFactory.Create(options)

Chromium 版本

您可以通过 ChromiumInfo.Version 常量值获取当前版本的 DotNetBrowser 使用的 Chromium 版本信息。 该字段允许您以编程方式在您的项目中返回 Chromium 引擎的版本。

位置

您可以在构造 IEngine 时使用 EngineOptions 指定 Chromium 二进制文件目录的路径,如下面的代码示例所示:

IEngine engine = EngineFactory.Create(new EngineOptions.Builder
{
    ChromiumDirectory = @"C:\Users\Me\.DotNetBrowser\chromium"
}
.Build());
Dim engine As IEngine = EngineFactory.Create(New EngineOptions.Builder With 
{
    .ChromiumDirectory = "C:\Users\Me\.DotNetBrowser\chromium"
}.Build())

路径可以是相对的或绝对的。

如果该目录已经有所需的 Chromium 二进制文件,库将不会执行提取。

如果目录已损坏且某些 Chromium 文件丢失,DotNetBrowser 将提取二进制文件并覆盖现有文件。

验证

每个 DotNetBrowser 版本只与它自己的 Chromium 二进制文件兼容。 特定版本的二进制文件不支持其他 DotNetBrowser 版本。

为确保 Chromium 二进制文件与当前的 DotNetBrowser 版本兼容,库会验证二进制文件

开关

Chromium 接受改变功能行为、帮助调试或打开实验功能的命令行开关

开关列表及其说明可在 Peter Beverloo 提供的文档中找到。

DotNetBrowser 不支持所有的 Chromium 开关。 因此,我们建议使用引擎选项而不是开关来配置 Chromium。

沙盒

Windows

DotNetBrowser 支持 Windows 上的 Chromium Sandbox。 默认情况下沙盒(Sandbox)是启用的,但您可以使用下面的代码示例将其禁用:

engine = EngineFactory.Create(new EngineOptions.Builder 
{
    SandboxDisabled  = true
}
.Build());
engine = EngineFactory.Create(New EngineOptions.Builder With 
{
    .SandboxDisabled = True
}.Build())

Chrome 扩展程序

DotNetBrowser 不支持专为 Chrome 应用程序设计的扩展程序。

该库仅与呈现网页内容的网页浏览器控件集成。 因此,它没有集成扩展所需的 Chrome GUI,以及工具栏和上下文菜单等元素。

Go Top