构建 Google 云端硬盘界面

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

访问 Google Workspace 插件界面

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

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

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

如需构建可扩展 Drive 的接口,请按照以下常规步骤操作:

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

云端硬盘首页

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

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

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

为所选商品提供 Drive 上下文界面

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

如需为 Google 云端硬盘创建情境化项目选择界面,您必须执行以下操作:

  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 触发函数被调用时,系统会创建事件对象并将其传递给这些函数。触发器函数使用此事件对象中的信息来确定如何构建插件卡片或以其他方式控制插件行为。

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

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

如果插件的行为旨在应用于多个所选项目,请使用事件对象中 drive.selectedItems 数组中提供的信息来识别所有这些项目。

如果插件的行为应仅应用于单个所选商品,请使用事件对象的 drive.activeCursorItem 字段中提供的信息来标识完整选择中的商品。请勿尝试从 drive.selectedItems 数组中推断要使用的商品。

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

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