构建 Google 云端硬盘界面

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

访问 Google Workspace 插件界面

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

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

构建插件云端硬盘界面

如需构建可扩展云端硬盘的界面,请按照以下常规步骤操作:

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

云端硬盘首页

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

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

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

云端硬盘上下文界面(针对已选择的项目)

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

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

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

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

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

  4. 与任何卡片一样,实现用于为界面提供小部件互动性的任何回调函数。例如,如果您在界面中添加了按钮 ,则该按钮应具有附加的 操作和已实现的 回调函数,这些函数会在点击按钮时运行。

事件对象

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

事件对象的完整结构在 事件对象中进行了说明。当 云端硬盘是插件的实际主机应用时, 上下文事件对象包含云端硬盘事件 对象字段,该字段 包含特定于云端硬盘的客户端信息。

项目选择触发器的上下文云端硬盘事件对象包含有关触发器触发时用户已选择的项目的信息。当用户在云端硬盘中选择多个项目时,其中一个项目会被视为用户最感兴趣的项目;此项目称为“活动光标项目”

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

当插件的行为应仅应用于单个选定项目时,请使用事件对象的 drive.activeCursorItem 字段中提供的信息,从完整选择中标识该项目。请勿尝试从 drive.selectedItems 数组中推断要使用的项目。

以下示例展示了传递给 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"
      },
      ...
    ]
  },
  ...
}