插件

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

请使用 Plugins API 来获取所有可用插件的信息,并在网页中启用或禁用插件。

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。在这个回调中,你可以决定是否允许网页使用该插件。

下面的示例演示了如何禁止所有 MIME 类型为 application/pdf 的插件:

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 查看器 

Fuzio 支持 Chromium 内置的 PDF 查看器插件。你可以使用 PDF 文件的 URL 来显示远程服务器上的 PDF,或者显示本地文件系统中的 PDF 文件。

Chromium PDF 查看器

如果你希望下载 PDF 文件而不是在应用中显示它们,则必须先禁用 PDF 查看器

PDF 查看器工具栏 

默认情况下,PDF 查看器会显示内置控件,例如缩放按钮、带有文件名、页码、旋转下载,和打印按钮的工具栏。您可以通过在 URL 末尾添加 #toolbar=0 来隐藏这些控件。

Chromium PDF 查看器无控件

导航栏 

默认情况下,PDF 查看器会显示导航栏,允许用户在不同页面之间切换。你可以在 URL 末尾添加 #navpanes=0 来隐藏它。

Chromium PDF 查看器无导航栏

缩放 

要在 PDF 查看器中设置初始缩放比例,请在 URL 末尾添加 #zoom= 后跟缩放百分比(例如,#zoom=125 表示 125%)。

Chromium PDF 查看器缩放后

适应选项 

#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 查看器横向适配

页码 

如果你希望在打开 PDF 时直接跳转到某一页,可以使用 page 参数。 例如,要打开 PDF 文件的第二页,请使用以下参数: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#page=2

Chromium PDF 查看器在指定页打开

命名目标 

如果 PDF 文件中包含命名目标(named destinations),你可以使用 nameddest 参数跳转到指定位置。 例如跳转至名为 sampledest 的目标时,使用以下参数: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#nameddest=sampledest

Chromium PDF 查看器打开到命名目标

组合多个参数 

请注意,PDF 查看器参数可通过 & 符号组合使用。例如,若需同时隐藏工具栏并将页面缩放至 125%,请使用以下参数: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#toolbar=0&zoom=125

Chromium PDF 查看器组合参数

禁用 PDF 查看器 

默认情况下,内置 PDF 查看器处于启用状态。若需禁用,请使用以下 API:

Java
Kotlin
plugins.settings().disablePdfViewer();
plugins.settings().disablePdfViewer()

受密码保护的 PDF 

你可以打开受密码保护的 PDF 文件,并通过标准对话框输入密码:

Chromium PDF 查看器密码对话框

你也可以使用 RequestPdfDocumentPasswordCallback 以编程方式设置密码:

Java
Kotlin
browser.set(RequestPdfDocumentPasswordCallback.class, (params, tell) -> {
    tell.password("oxford not brogues");
});
browser.register(RequestPdfDocumentPasswordCallback { params, tell ->
    tell.password("oxford not brogues")
})

ActiveX 

Chromium 不支持 ActiveX,因此 Fuzio 也同样不支持 ActiveX。

微信咨询

即库客服

微信公众号二维码

技术客服

微信公众号二维码