List icon 目录

插件

JxBrowser 支持 Chromium 插件。本指南将介绍如何获取有关所有已安装和可用的 Chromium 插件的信息,如何在网页上启用或禁用指定插件等。

请使用 Plugins 获取有关所有可用插件的信息,并在网页上启用/禁用插件。

Java
Kotlin

var plugins = profile.plugins();

val plugins = profile.plugins()

默认情况下,所有插件都是启用的。

安装的插件

要获取有关所有已安装和可用插件的信息,请使用以下代码:

Java
Kotlin

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 类型的插件:

Java
Kotlin

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 文件。

Chromium PDF Viewer

如果您需要下载 PDF 文档而不是显示它们,则必须禁用 PDF Viewer

PDF 查看器工具栏

默认情况下,PDF Viewer 显示内置控件,例如缩放按钮、带有文件名的工具栏、页码、Rotate(旋转)Download(下载)Print(打印) 按钮。您可以通过将 #toolbar=0 添加到 URL 的末尾来隐藏这些控件。

Chromium PDF Viewer No Controls

导航栏

默认情况下,PDF Viewer 会显示导航栏,允许用户在页面之间切换。 您可以通过在 URL 的末尾添加 #navpanes=0 来隐藏它。

Chromium PDF Viewer No Navbar

缩放

要设置 PDF Viewer 的初始缩放比例,请在 URL 末尾添加 #zoom=,后跟缩放百分比(例如,#zoom=125 for 125%)。

Chromium PDF Viewer Zoomed

适合选项

#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 内容的边界框占据所有可用的水平空间:

Chromium PDF Viewer Fit Horizontally

页码

如果您想在特定页面打开 PDF 文件,则应使用 page 参数。例如,要在第二页打开 PDF 文件,请使用以下参数: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#page=2

Chromium PDF Viewer Opened At Page

命名目标

如果 PDF 文件包含命名目标,您可以使用 nameddest 参数导航到其中一个目标。例如,要导航到名为 sampledest 的命名目标,请使用以下参数: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#nameddest=sampledest

Chromium PDF Viewer Opened At Named Destination

组合多个参数

请注意,PDF Viewer 的参数可以使用 & 进行组合。例如,如果您需要同时隐藏工具栏并将页面缩放到 125%,可以使用以下参数: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#toolbar=0&zoom=125

Chromium PDF Viewer Combined Parameters

禁用 PDF 查看器

默认情况下,内置 PDF Viewer 已启用。要禁用它,请使用 7.9 中引入的以下 API:

Java
Kotlin

plugins.settings().disablePdfViewer();

plugins.settings().disablePdfViewer()

受密码保护的 PDF

您可以打开受密码保护的 PDF 文件并使用标准对话框提供密码:

Chromium PDF Viewer Password dialog

7.27 开始,您可以使用 RequestPdfDocumentPasswordCallback 以编程的方式设置密码:

Java
Kotlin

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 SilverlightJava Applet。因此,JxBrowser 也不支持它们。

ActiveX

Chromium 不支持 ActiveX,因此 JxBrowser 也不支持它。

Widevine

7.4 版本开始,JxBrowser 允许通过 Engine 选项启用 Widevine