构建 Google 云端硬盘界面

Google Workspace 插件可以在用户使用 Google 云端硬盘时提供自定义界面。这样,您可以为用户提供其他相关信息、自动执行任务,并将第三方系统连接到 Google 云端硬盘。

访问插件界面

如果插件的图标显示在云端硬盘界面右侧的图标列中,您可以在 Google 云端硬盘中打开插件。 Google Workspace Google Workspace 插件可以定义首页界面和/或内容选择界面:

  • 如果用户在 Google 云端硬盘中点击插件图标,该插件会执行对应的 drive.homepageTrigger 函数(如果存在)。此函数会构建首页卡片并将其返回到 Google 云端硬盘以供显示。如果未定义 drive.homepageTrigger 函数,则会显示通用首页卡片。
  • 如果用户在云端硬盘中选择一项或多项内容,然后点击该插件图标,或者在该插件打开时选择内容,该插件就会执行相应的 drive.onItemsSelectedTrigger 上下文函数(如果存在)。此函数会构建插件的云端硬盘上下文“内容项”界面,并将其返回给 Google 云端硬盘以供显示。

构建云端硬盘插件界面

您可以按照以下常规步骤构建扩展 Google 云端硬盘的接口:

  1. 确定是否要在插件中添加云端硬盘专用的首页。 此外,还要决定是否在用户选择云端硬盘内容时提供上下文接口。
  2. 将适当的 addOns.commonaddOns.drive 字段添加到插件脚本项目清单中,包括所需的任何云端硬盘范围
  3. 如果您提供云端硬盘专用首页,请实现 drive.homepageTrigger 函数来构建此接口。您还可以选择将 common.homepageTrigger 接口用于多个 Google Workspace 主机。
  4. 如果您要提供云端硬盘内容相关选择界面,则必须实现 drive.onItemsSelectedTrigger 内容相关触发器功能来构建此界面。如需了解详情,请参阅云端硬盘内容上下文界面
  5. 实现响应用户界面互动(例如按钮点击)所需的关联回调函数。

云端硬盘首页

Google 云端硬盘支持显示 Google Workspace 插件首页。如需在 Google 云端硬盘中显示插件的通用首页,只需确保插件清单中包含 addOns.drive 字段即可。

或者,将 drive.homepageTrigger 添加到插件清单,以提供云端硬盘专用首页。

在任何一种情况下,您都必须在插件的脚本项目中提供首页触发器函数的名称。系统会在需要时自动调用此函数来构建云端硬盘首页。您必须实现此函数,以构建并返回构成首页的单个 Card 或一组 Card 对象。系统会向首页触发器函数传递事件对象作为参数,其中包含一些常规信息,例如客户端的平台。您可以使用事件对象数据来定制首页的构造。

与所选内容相关的云端硬盘界面

Google 云端硬盘依靠上下文触发器来确定当用户选择一个或多个云端硬盘内容时要显示哪个界面(如果有)。当触发器触发时,它会执行插件清单中的 drive.onItemsSelectedTrigger.runFunction 字段指定的上下文触发器函数。

如需为云端硬盘创建内容相关选择界面,您必须执行以下操作:

  1. 确保插件的清单包含 https://www.googleapis.com/auth/drive.addons.metadata.readonly 范围

  2. 确保清单包含 drive.onItemsSelectedTrigger 部分。

  3. 实现 drive.onItemsSelectedTrigger 字段中指定的函数。此函数接受事件对象作为参数,并且必须返回单个 Card 对象或一组 Card 对象。

  4. 与任何卡片一样,您必须实现所有用于为接口提供 widget 互动的回调函数。例如,如果您在界面中添加了一个按钮,则该按钮应具有一个附加的 Action 和一个已实现的回调函数,点击该按钮后可运行该函数。

事件对象

系统会创建一个事件对象,并将其传递给 drive.homepageTriggerdrive.onItemsSelectedTrigger 触发器函数。触发器函数可以使用此事件对象中的信息来确定如何构建插件卡片或以其他方式控制插件行为。

事件对象中介绍了事件对象的完整结构。当云端硬盘是插件的正文托管应用时,上下文事件对象包括传递云端硬盘专用客户端信息的 Drive 事件对象字段。

内容选择触发器的上下文云端硬盘事件对象包含有关用户在该触发器触发时选择的内容的信息。当用户在云端硬盘中选择多个项时,其中一项将被视为主要关注点之一;该项称为“活动光标项”。

以下示例展示了传递给 drive.onItemsSelectedTrigger 函数的云端硬盘事件对象

    {
      "commonEventObject": { ... },
      "drive": {
        "activeCursorItem":{
          "addonHasFileScopePermission": true,
          "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
          "iconUrl": "https://drive-thirdparty.googleusercontent.com...",
          "mimeType":"application/pdf",
          "title":"How to get started with Drive"
        },
        "selectedItems": [
          {
            "addonHasFileScopePermission": true,
            "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
            "iconUrl":"https://drive-thirdparty.googleusercontent.com...",
            "mimeType":"application/pdf",
            "title":"How to get started with Drive"
          },
          ...
        ]
      },
      ...
    }