插件
JxBrowser 支持 Chromium 插件。本指南描述了如何获取有关所有已安装和可用的 Chromium 插件的信息,如何在网页上启用或禁用指定插件等。
请使用 Plugins
获取有关所有可用插件的信息,并在网页上启用/禁用插件。
Plugins plugins = profile.plugins();
val plugins = profile.plugins()
默认情况下,所有插件都是启用的。
安装的插件
要获取有关所有已安装和可用插件的信息,请使用以下代码:
plugins.list().forEach(plugin -> {
String name = plugin.name();
String description = plugin.description();
String 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 类型。
List<MimeType> pluginMimeTypes = params.plugin().mimeTypes();
// 拒绝所有具有 "application/pdf" MIME 类型的插件。
if (pluginMimeTypes.contains(MimeType.of("application/pdf"))) {
return Response.deny();
}
return Response.allow();
});
plugins.set(AllowPluginCallback::class.java, AllowPluginCallback { params ->
// 获取插件的 MIME 类型。
val pluginMimeTypes = params.plugin().mimeTypes()
// 拒绝所有具有 "application/pdf" MIME 类型的插件。
if (pluginMimeTypes.contains(MimeType.of("application/pdf"))) {
Response.deny()
} else {
Response.allow()
}
})
PDF 查看器
JxBrowser 支持内置的 Chromium PDF 查看器插件。您可以使用 PDF 文件的 URL 显示远程网络 服务器上可用的 PDF 文件,或显示位于本地文件系统中的 PDF 文件。
如果您需要下载 PDF 文档而不是显示它们,则必须禁用 PDF 查看器。
PDF 查看器工具栏
默认情况下,PDF 查看器显示内置控件,例如缩放按钮、带有文件名的工具栏、页码、旋转、下载和打印按钮。您可以通过将 #toolbar=0 添加到 URL 的末尾来隐藏这些控件。
禁用 PDF 查看器
默认情况下,内置 PDF 查看器已启用。要禁用它,请使用 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.set(RequestPdfDocumentPasswordCallback::class.java,
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 也不支持它。