当用户使用 Google 云端硬盘时,Google Workspace 插件可以提供自定义界面。这样,您就可以向用户提供其他相关信息、自动执行任务,以及将第三方系统连接到 Google 云端硬盘。
访问插件界面
如果 Google Workspace 插件的图标显示在云端硬盘界面右侧的图标列中,您就可以在 Google 云端硬盘中打开该插件。Google Workspace 插件可以定义首页界面和/或内容选择界面:
- 如果用户在 Google 云端硬盘中点击插件图标,该插件会执行相应的
drive.homepageTrigger
函数(如果有)。此函数会构建并返回首页信息卡,并将其返回到 Google 云端硬盘以供显示。如果未定义drive.homepageTrigger
函数,系统会改为显示通用首页卡片。 - 如果用户在 Google 云端硬盘中选择一个或多个项目,然后点击插件图标,或者在插件处于打开状态时选择项目,插件就会执行相应的
drive.onItemsSelectedTrigger
上下文函数(如果有)。此函数会构建该插件在 Google 云端硬盘中的上下文“所选内容”界面,并将其返回到 Google 云端硬盘以供显示。
构建插件云端硬盘界面
您可以按照以下常规步骤构建扩展 Google 云端硬盘的接口:
- 确定您是否希望为您的插件创建专门的云端硬盘首页。此外,还要决定是否要在用户选择云端硬盘项时提供上下文界面。
- 将适当的
addOns.common
和addOns.drive
字段添加到插件脚本项目清单,包括所需的所有 云端硬盘镜重范围。 - 如果您要提供专门的云端硬盘首页,请实现
drive.homepageTrigger
函数以构建此界面。您还可以选择为多个 Google Workspace 主机使用common.homepageTrigger
界面。 - 如果您要提供 Google 云端硬盘情境内容选择界面,则必须实现
drive.onItemsSelectedTrigger
情境触发器函数才能构建此界面。如需了解详情,请参阅针对所选内容的云端硬盘情境界面。 - 实现响应用户界面互动(例如按钮点击)所需的关联回调函数。
云端硬盘首页
Google 云端硬盘支持显示 Google Workspace 插件首页。如需在 Google 云端硬盘中显示您的插件通用首页,只需确保插件的清单中包含 addOns.drive
字段即可。
或者,您也可以向插件清单添加 drive.homepageTrigger
,以提供专门针对云端硬盘的首页。
无论是哪种情况,您都必须在插件脚本项目中提供首页触发器函数的名称。系统会在需要时自动调用此函数来构建云端硬盘首页。您必须实现此函数,以构建并返回构成首页的单个 Card
或 Card
对象数组。系统会将事件对象作为参数传递给首页触发器函数,其中包含一些常规信息,例如客户端的平台。您可以使用事件对象数据来量身定制首页的构建方式。
为所选内容显示 Drive 情境界面
Google 云端硬盘依赖于情境触发器来确定在用户选择一个或多个 Google 云端硬盘内容时显示哪个界面(如果有)。触发器触发时,它会执行插件清单中的 drive.onItemsSelectedTrigger.runFunction
字段指定的内容相关触发器函数。
如需为云端硬盘创建内容相关项选择界面,您必须执行以下操作:
确保该插件清单包含
https://www.googleapis.com/auth/drive.addons.metadata.readonly
scope确保清单包含
drive.onItemsSelectedTrigger
部分。实现
drive.onItemsSelectedTrigger
字段中命名的函数。此函数接受 event 对象作为参数,并且必须返回单个Card
对象或Card
对象的数组。与任何卡片一样,您必须实现用于为界面提供 widget 互动的所有回调函数。例如,如果您在界面中添加按钮,则该按钮应附加一个 Action 和一个在点击按钮时运行的已实现回调函数。
事件对象
系统会创建一个事件对象,并在调用 drive.homepageTrigger
或 drive.onItemsSelectedTrigger
触发器函数时将其传递给这些函数。触发器函数可以使用此事件对象中的信息来确定如何构建插件卡片或以其他方式控制插件行为。
事件对象中介绍了事件对象的完整结构。当云端硬盘是插件的实时托管应用时,情境事件对象包含包含云端硬盘专用客户端信息的 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"
},
...
]
},
...
}