用于在界面元素中启用交互性的操作。该操作不会直接在客户端上执行,而是会使用可选参数调用 Apps 脚本回调函数。
适用于 Google Workspace 插件和 Google Chat 应用。
const image = CardService.newImage().setOnClickAction( CardService.newAction().setFunctionName('handleImageClick').setParameters({ imageSrc: 'carImage' }), );
方法
方法 | 返回类型 | 简介 |
---|---|---|
add | Action | 添加此 Action 需要的微件的名称,以便有效提交。 |
set | Action | 指示此 Action 是否需要从所有 widget 获取输入。 |
set | Action | 设置要调用的回调函数的名称。 |
set | Action | 设置与用户的互动,仅在打开对话框时需要。 |
set | Action | 设置在操作进行期间显示的加载指示器。 |
set | Action | 允许将自定义参数传递给回调函数。 |
set | Action | 指示在操作响应更新表单的 Card 后,表单值是由客户端的值还是服务器的值决定的。 |
详细文档
add Required Widget(requiredWidget)
添加此 Action 在有效提交时需要的 widget 的名称。如果在调用此 Action 时此列表中的 widget 没有值,系统会中止表单提交。
仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。
const textInput = CardService.newTextInput() .setFieldName('text_input_1') .setTitle('Text input title'); // Creates a footer button that requires an input from the above TextInput // Widget. const action = CardService.newAction() .setFunctionName('notificationCallback') .addRequiredWidget('text_input_1'); const fixedFooter = CardService.newFixedFooter().setPrimaryButton( CardService.newTextButton().setText('help').setOnClickAction(action), );
参数
名称 | 类型 | 说明 |
---|---|---|
required | String | 此 Action 所需的 widget 的名称。 |
返回
Action
- 此对象,用于链式调用。
set All Widgets Are Required(allWidgetsAreRequired)
指示此 Action 是否需要从所有 widget 获取输入。
仅适用于 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));
参数
名称 | 类型 | 说明 |
---|---|---|
all | Boolean | 操作是否需要从所有 widget 获取输入。默认值为 false 。 |
返回
Action
- 此对象,用于链式调用。
set Function Name(functionName)
设置要调用的回调函数的名称。必填。
参数
名称 | 类型 | 说明 |
---|---|---|
function | String | 函数的名称。您可以使用包含的库中的函数,例如 Library.libFunction1 。 |
返回
Action
- 此对象,用于链式调用。
set Interaction(interaction)
设置与用户的互动,仅在打开对话框时需要。如果未指定,应用会像正常一样执行 Action
(例如打开链接或运行函数)来响应。
仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。
const action = CardService.newAction() .setFunctionName('handleDialog') .setInteraction(CardService.Interaction.OPEN_DIALOG);
参数
名称 | 类型 | 说明 |
---|---|---|
interaction | Interaction | 要指定的互动。 |
返回
Action
- 此对象,用于链式调用。
set Load Indicator(loadIndicator)
set Parameters(parameters)
set Persist Values(persistValues)
指示在操作响应更新表单的 Card
后,表单值是由客户端的值还是服务器的值决定的。设置为 true
后,客户端的值会在服务器响应后保留。设置为 false
时,服务器的值会覆盖表单值。默认值为 false
。
保留客户端值有助于防止在用户进行修改后表单意外更改的情况。例如,如果用户在提交表单后,但在服务器响应之前对 Text
进行修改。如果值已持久化,则在服务器响应更新 Card
后,用户所做的修改会保留;否则,表单值会返回到用户最初向表单提交的值。
保留客户端值可能会干扰脚本清除表单字段或替换表单值的功能,因此请避免为此类功能启用持久性。如果不进行持久化,建议您对事件使用 Load
,因为这会锁定界面,并在服务器响应之前阻止用户进行修改。或者,您也可以使用 Load
,并确保表单中的每个元素都有 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'), );
参数
名称 | 类型 | 说明 |
---|---|---|
persist | Boolean | 是否保留值。默认为 false 。 |
返回
Action
- 此对象,用于链式调用。