插件
DotNetBrowser 支持 Chromium 插件。 本指南介绍了如何获取所有已安装和可用的 Chromium 插件的信息、在网页上启用或禁用指定插件以及其他操作。
使用 IPlugins
获取有关所有可用插件的信息,并在网页上启用/禁用插件。 默认情况下,所有插件都是启用的。
插件与 Profiles
相关联。 如果要获取特定 Profile
的 Plugins
服务,请使用 Profile.Plugins()
方法。 使用 IEngine.Plugins()
会返回默认配置文件的 Plugins
服务。
默认情况下,所有插件都是启用的。
已安装的插件
要获取所有已安装和可用插件的信息,请使用下面的代码示例:
foreach (Plugin plugin in engine.Profiles.Default.Plugins.AvailablePlugins)
{
string name = plugin.Name;
string description = plugin.Description;
string version = plugin.Version;
}
For Each plugin As Plugin In engine.Profiles.Default.Plugins.AvailablePlugins
Dim name As String = plugin.Name
Dim description As String = plugin.Description
Dim version As String = plugin.Version
Next
过滤插件
每当网页需要访问插件时,都会使用 AllowPluginHandler
。 在该处理程序中,您可以指示网页是否允许使用所请求的插件。
下面的示例演示了如何拒绝所有 MIME 类型为 application/pdf
的插件:
engine.Profiles.Default.Plugins.AllowPluginHandler =
new Handler<AllowPluginParameters, AllowPluginResponse>(p =>
{
// 获取插件的 MIME 类型。
IEnumerable<MimeType> pluginMimeTypes = p.Plugin.MimeTypes;
// 拒绝所有 MIME 类型为 "application/pdf" 的插件。
if (pluginMimeTypes.Contains(MimeType.ApplicationPdf))
{
return AllowPluginResponse.Deny();
}
return AllowPluginResponse.Allow();
});
engine.Profiles.Default.Plugins.AllowPluginHandler =
New Handler(Of AllowPluginParameters, AllowPluginResponse)(Function(p)
' 获取插件的 MIME 类型。
Dim pluginMimeTypes As IEnumerable(Of MimeType) = p.Plugin.MimeTypes
' 拒绝所有 MIME 类型为 "application/pdf" 的插件。
If pluginMimeTypes.Contains(MimeType.ApplicationPdf) Then
Return AllowPluginResponse.Deny()
End If
Return AllowPluginResponse.Allow()
End Function)
DotNetBrowser 支持内置的 Chromium PDF 查看器插件。 您可以使用 PDF 文件的 URL 或位于本地文件系统中的 PDF 文件显示远程网络服务器上可用的 PDF 文件:
PDF 查看器工具栏
默认情况下,PDF Viewer 显示内置控件,如缩放按钮、包含文件名、页码、旋转、下载和打印按钮的工具栏。 您可以在 URL 末尾添加 #toolbar=0
来隐藏这些控件。
例如, http://www.orimi.com/pdf-test.pdf#toolbar=0
对于从本地文件系统加载的 PDF,请使用以下 URL 格式:
file:///D:/Downloads/pdf-test.pdf#toolbar=0
禁用 PDF 查看器
默认情况下,PDF 文件将显示在 PDF 查看器中。 要下载 PDF 而不是显示它们,请使用 IBrowserSettings.PdfViewerEnabled
属性:
engine.Profiles.Default.Plugins.Settings.PdfViewerEnabled = false;
engine.Profiles.Default.Plugins.Settings.PdfViewerEnabled = False
受密码保护的 PDF
默认情况下,加载加密 PDF 时会显示标准 Chromium 对话框:
要以编程方式提供密码,请使用 RequestPdfDocumentPasswordHandler
:
// 以编程方式提供密码。
Browser.RequestPdfDocumentPasswordHandler =
new Handler<RequestPdfDocumentPasswordParameters, RequestPdfDocumentPasswordResponse>(p
=> RequestPdfDocumentPasswordResponse.Password(Password));
' 以编程方式提供密码。
Browser.RequestPdfDocumentPasswordHandler =
New Handler(Of RequestPdfDocumentPasswordParameters,
RequestPdfDocumentPasswordResponse)(Function(p)
RequestPdfDocumentPasswordResponse.Password(Password))
Adobe Flash
Adobe Flash 将于 2020 年 12 月终止服务。 如果在系统中安装并配置了相应插件,基于 Chromium 87 及以下版本的 DotNetBrowser 仍可使用 Flash。
从 88 版本开始,Chromium 不再支持 Flash。 DotNetBrowser 从 2.5 版本开始也不再支持它。
NPAPI 插件
从 49 版本开始,Chromium 不再支持任何 NPAPI 插件,包括 Microsoft Silverlight,DotNetBrowser 也不再支持它们。
ActiveX
由于 Chromium 不支持 ActiveX,因此 DotNetBrowser 也不支持它。