介绍
安装
指南
- Engine
- Profile
- Browser
- BrowserView
- 导航
- 内容
- 上下文菜单
- DOM
- JavaScript
- 弹出窗口
- 对话框
- 下载
- Chrome 扩展程序
- 网络
- 缓存
- Cookies
- 代理
- 身份验证
- 权限
- 插件
- 打印
- 密码
- 用户数据配置文件
- 信用卡
- 媒体
- 缩放
- 拼写检查器
- 部署
- Chromium
故障排除
- 日志记录
- 常见异常
- 应用程序不终止
- 视频不播放
- 无法登录 Google 账号
- 用户数据未被储存
- 配色方案
- 启动失败
- Windows 启动缓慢
- 无响应的 .NET 应用程序
- Chromium 进程意外终止
- 意外行为
- Windows 7/8/8.1 停止支持
迁移
Chromium
本指南将介绍如何使用 DotNetBrowser 所使用的 Chromium 构建。
使用 DotNetBrowser 不需要在目标环境中安装 Chromium 或 Google Chrome 浏览器,因为它使用并部署了自己的 Chromium 构建。
二进制文件
每个支持平台的 Chromium 二进制文件都位于相应的 DotNetBrowser 动态链接库中:
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 开关。 因此,我们建议使用引擎选项而不是开关(switches)来配置 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,以及工具栏和上下文菜单等元素。