一种能够在界面元素内实现互动的操作。该操作不会直接在 而是调用 Apps 脚本回调函数 以及可选参数
适用于 Google Workspace 插件和 Google Chat 应用。
var image = CardService.newImage() .setOnClickAction(CardService.newAction() .setFunctionName("handleImageClick") .setParameters({imageSrc: 'carImage'}));
方法
方法 | 返回类型 | 简介 |
---|---|---|
addRequiredWidget(requiredWidget) | Action | 添加此 Action 有效提交所需的微件名称。 |
setAllWidgetsAreRequired(allWidgetsAreRequired) | Action | 指明此操作是否需要所有微件的输入。 |
setFunctionName(functionName) | Action | 设置要调用的回调函数的名称。 |
setInteraction(interaction) | Action | 设置与用户的互动,仅在打开对话框时才需要。 |
setLoadIndicator(loadIndicator) | Action | 设置操作正在进行时显示的加载指示器。 |
setParameters(parameters) | Action | 允许将自定义参数传递给回调函数。 |
setPersistValues(persistValues) | Action | 指示表单值是由客户端值还是服务器值决定
在操作响应更新表单的 Card 后。 |
详细文档
addRequiredWidget(requiredWidget)
添加此 Action 有效提交所需的微件名称。如果其中的微件 调用此操作时此列表不含任何值,表单提交将中止。
仅适用于 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 | 此操作所需的微件名称。 |
返回
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
- 此对象,用于链接。