构建 Google 云端硬盘界面

当用户使用 Google 云端硬盘时,Google Workspace 加载项可以提供自定义界面。这样一来,您就可以向用户提供更多相关信息、自动执行任务,以及将第三方系统连接到 Google 云端硬盘。

访问插件界面

如果 Google Workspace 插件的图标显示在云端硬盘界面右侧的图标列中,您可以在 Google 云端硬盘中打开该插件。Google Workspace 插件可以定义首页界面、项目选择界面或同时定义这两种界面:

构建插件的 Google 云端硬盘界面

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

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

云端硬盘首页

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

或者,您也可以向插件清单添加 drive.homepageTrigger,以提供特定于 Google 云端硬盘的主页。

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

为所选内容提供 Drive 上下文界面

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

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

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

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

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

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

事件对象

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

如需详细了解事件对象的完整结构,请参阅事件对象。 当云端硬盘是插件的实际宿主应用时,上下文事件对象会包含 Drive 事件对象字段,其中包含特定于云端硬盘的客户端信息。

用于项目选择触发器的情境化云端硬盘事件对象包含有关触发器触发时用户已选择的项目的信息。当用户在云端硬盘中选择多个项目时,其中一个项目会被视为主要感兴趣的项目;该项目称为有效光标项目

以下示例展示了传递给 drive.onItemsSelectedTrigger 函数的 Drive 事件对象

    {
      "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"
          },
          ...
        ]
      },
      ...
    }