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