能够在界面元素内实现互动的操作。该操作不会直接在客户端上发生,而是通过可选参数调用 Apps 脚本回调函数。
适用于 Google Workspace 插件和 Google Chat 应用。
var image = CardService.newImage() .setOnClickAction(CardService.newAction() .setFunctionName("handleImageClick") .setParameters({imageSrc: 'carImage'}));
方法
方法 | 返回类型 | 简介 |
---|---|---|
addRequiredWidget(requiredWidget) | Action | 添加此 Action 有效提交所需的 widget 的名称。 |
setAllWidgetsAreRequired(allWidgetsAreRequired) | Action | 指示此操作是否需要所有 widget 的输入。 |
setFunctionName(functionName) | Action | 设置要调用的回调函数的名称。 |
setInteraction(interaction) | Action | 设置与用户的互动,仅在打开对话框时才需要。 |
setLoadIndicator(loadIndicator) | Action | 设置操作正在进行时显示的加载指示器。 |
setParameters(parameters) | Action | 允许将自定义参数传递给回调函数。 |
setPersistValues(persistValues) | Action | 指示表单值是由客户端的值还是服务器的值决定的,在操作响应更新表单的 Card 之后。 |
详细文档
addRequiredWidget(requiredWidget)
添加此 Action 有效提交所需的 widget 的名称。如果调用此操作时此列表中的 widget 没有值,表单提交将取消。
仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。
var textInput = CardService.newTextInput() .setFieldName("text_input_1") .setTitle("Text input title") // Creates a footer button that requires an input from the above TextInput Widget. var action = CardService.newAction() .setFunctionName("notificationCallback") .addRequiredWidget("text_input_1"); var fixedFooter = CardService .newFixedFooter() .setPrimaryButton( CardService .newTextButton() .setText("help") .setOnClickAction(action));
参数
名称 | 类型 | 说明 |
---|---|---|
requiredWidget | String | 此操作所需的 widget 的名称。 |
弃踢回攻
Action
- 此对象,用于链接。
setAllWidgetsAreRequired(allWidgetsAreRequired)
指示此操作是否需要所有微件的输入。
仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。
// Creates a button with an action that requires inputs from all widgets. const button = CardService.newTextButton() .setText('Create notification') .setOnClickAction( CardService.newAction() .setAllWidgetsAreRequired(true));
参数
名称 | 类型 | 说明 |
---|---|---|
allWidgetsAreRequired | Boolean | 操作是否需要来自所有 widget 的输入。默认值为 false 。 |
弃踢回攻
Action
- 此对象,用于链接。
setFunctionName(functionName)
设置要调用的回调函数的名称。必填。
参数
名称 | 类型 | 说明 |
---|---|---|
functionName | String | 函数的名称。您可以使用附带的库中的函数,例如 Library.libFunction1 。 |
弃踢回攻
Action
- 此对象,用于链接。
setInteraction(interaction)
设置与用户的互动,仅在打开对话框时才需要。如果未指定,应用会像往常一样通过执行 Action
(例如打开链接或运行函数)来做出响应。
仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。
const action = CardService.newAction() .setFunctionName('handleDialog') .setInteraction(CardService.Interaction.OPEN_DIALOG);
参数
名称 | 类型 | 说明 |
---|---|---|
interaction | Interaction | 指定的互动。 |
弃踢回攻
Action
- 此对象,用于链接。
setLoadIndicator(loadIndicator)
setParameters(parameters)
setPersistValues(persistValues)
指示表单值是由客户端的值还是服务器的值决定的,在操作响应更新表单的 Card
之后。如果设置为 true
,客户端的值会在服务器响应后保留。如果设置为 false
,服务器的值会覆盖表单值。默认值为 false
。
保留客户端值有助于防止表单在用户进行修改后意外更改。例如,如果用户在提交表单之后、服务器响应之前对 TextInput
进行了修改。如果保留这些值,则在服务器响应更新 Card
后,用户所做的修改会保留;否则,表单值将返回用户最初提交到表单的值。
保留客户端值可能会影响脚本清除表单字段或覆盖表单值的能力,因此请避免为此类功能启用保留功能。如果没有持久化,建议您对事件使用 LoadIndicator.SPINNER
,因为这会在服务器响应之前锁定界面并阻止用户修改。或者,您也可以使用 LoadIndicator.NONE
并确保表单中的每个元素都有 onChange 操作。
// Creates a button with an action that persists the client's values as the on-click action. const button = CardService.newTextButton() .setText('Create notification') .setOnClickAction( CardService.newAction() .setPersistValues(true) .setFunctionName('functionName'));
参数
名称 | 类型 | 说明 |
---|---|---|
persistValues | Boolean | 是否保留值。默认为 false 。 |
弃踢回攻
Action
- 此对象,用于链接。