插件
JxBrowser 支持 Chromium 插件。本指南将介绍如何获取有关所有已安装和可用的 Chromium 插件的信息,如何在网页上启用或禁用指定插件等。
请使用 Plugins
获取有关所有可用插件的信息,并在网页上启用/禁用插件。
var plugins = profile.plugins();
val plugins = profile.plugins()
默认情况下,所有插件都是启用的。
安装的插件
要获取有关所有已安装和可用插件的信息,请使用以下代码:
plugins.list().forEach(plugin -> {
var name = plugin.name();
var description = plugin.description();
var version = plugin.version();
});
plugins.list().forEach { plugin ->
val name = plugin.name()
val description = plugin.description()
val version = plugin.version()
}
过滤插件
每次当网页需要访问插件时,AllowPluginCallback
就会被调用。在此回调中,您可以告诉网页是否允许所请求的插件。
以下示例演示如何拒绝所有具有 application/pdf
MIME 类型的插件:
plugins.set(AllowPluginCallback.class, (params) -> {
// 获取插件 MIME 类型。
var pluginMimeTypes = params.plugin().mimeTypes();
// 拒绝所有具有 "application/pdf" MIME 类型的插件。
if (pluginMimeTypes.contains(MimeType.of("application/pdf"))) {
return AllowPluginCallback.Response.deny();
}
return AllowPluginCallback.Response.allow();
});
plugins.register(AllowPluginCallback { params ->
// 获取插件 MIME 类型。
val pluginMimeTypes = params.plugin().mimeTypes()
// 拒绝所有具有 "application/pdf" MIME 类型的插件。
if (pluginMimeTypes.contains(MimeType("application/pdf"))) {
AllowPluginCallback.Response.deny()
} else {
AllowPluginCallback.Response.allow()
}
})
PDF 查看器
JxBrowser 支持内置的 Chromium PDF Viewer(查看器)插件。您可以使用 PDF 文件的 URL 显示远程网络服务器上的 PDF 文件,或显示位于本地文件系统中的 PDF 文件。
如果您需要下载 PDF 文档而不是显示它们,则必须禁用 PDF Viewer。
PDF 查看器工具栏
默认情况下,PDF Viewer 显示内置控件,例如缩放按钮、带有文件名的工具栏、页码、Rotate(旋转)、Download(下载) 和 Print(打印) 按钮。您可以通过将 #toolbar=0
添加到 URL 的末尾来隐藏这些控件。
导航栏
默认情况下,PDF Viewer 会显示导航栏,允许用户在页面之间切换。 您可以通过在 URL 的末尾添加 #navpanes=0
来隐藏它。
缩放
要设置 PDF Viewer 的初始缩放比例,请在 URL 末尾添加 #zoom=
,后跟缩放百分比(例如,#zoom=125
for 125%)。
适合选项
#view
参数允许您指定 PDF 在查看器中的显示方式。以下是支持的选项列表:
#view=Fit
在视图中显示整个页面,缩放以适合视口的高度和宽度。#view=FitH
将页面水平调整为适合视口的宽度,可能需要垂直滚动。#view=FitV
将页面垂直调整为适合视口的高度,可能需要水平滚动。#view=FitB
将 PDF 内容(不包括边距)的边界框调整为适合视图。#view=FitBH,top
将视口大小调整为适合边界框的整个宽度,以x
维度为中心。FitBH
采用可选参数top
,用于设置给定页面的垂直偏移值。例如: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#view=FitBH,100#view=FitBV,left
调整视口大小以适合边界框的整个高度,以y
维度为中心。FitBV
采用可选参数left
,用于设置给定页面的水平偏移值。例如: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#view=FitBV,100
例如,#view=FitH
会使 PDF 内容的边界框占据所有可用的水平空间:
页码
如果您想在特定页面打开 PDF 文件,则应使用 page
参数。例如,要在第二页打开 PDF 文件,请使用以下参数:
https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#page=2
命名目标
如果 PDF 文件包含命名目标,您可以使用 nameddest
参数导航到其中一个目标。例如,要导航到名为 sampledest
的命名目标,请使用以下参数:
https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#nameddest=sampledest
组合多个参数
请注意,PDF Viewer 的参数可以使用 &
进行组合。例如,如果您需要同时隐藏工具栏并将页面缩放到 125%,可以使用以下参数:
https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#toolbar=0&zoom=125
禁用 PDF 查看器
默认情况下,内置 PDF Viewer 已启用。要禁用它,请使用 7.9 中引入的以下 API:
plugins.settings().disablePdfViewer();
plugins.settings().disablePdfViewer()
受密码保护的 PDF
您可以打开受密码保护的 PDF 文件并使用标准对话框提供密码:
从 7.27 开始,您可以使用 RequestPdfDocumentPasswordCallback
以编程的方式设置密码:
browser.set(RequestPdfDocumentPasswordCallback.class, (params, tell) -> {
tell.password("oxford not brogues");
});
browser.register(RequestPdfDocumentPasswordCallback { params, tell ->
tell.password("oxford not brogues")
})
Adobe Flash
Adobe Flash 已于 2020 年 12 月终止使用。Chromium 从 88 版本开始不再支持 Adobe Flash。因此,JxBrowser 7.13 及更高版本不再支持 Flash。
NPAPI 插件
从 49 版本开始,Chromium 不支持任何 NPAPI 插件,包括 Microsoft Silverlight 和 Java Applet。因此,JxBrowser 也不支持它们。
ActiveX
Chromium 不支持 ActiveX,因此 JxBrowser 也不支持它。