Class Action

操作

用于在界面元素中启用交互性的操作。该操作不会直接在客户端上执行,而是会使用可选参数调用 Apps 脚本回调函数

适用于 Google Workspace 插件和 Google Chat 应用。

const image = CardService.newImage().setOnClickAction(
    CardService.newAction().setFunctionName('handleImageClick').setParameters({
      imageSrc: 'carImage'
    }),
);

方法

方法返回类型简介
addRequiredWidget(requiredWidget)Action添加此 Action 需要的微件的名称,以便有效提交。
setAllWidgetsAreRequired(allWidgetsAreRequired)Action指示此 Action 是否需要从所有 widget 获取输入。
setFunctionName(functionName)Action设置要调用的回调函数的名称。
setInteraction(interaction)Action设置与用户的互动,仅在打开对话框时需要。
setLoadIndicator(loadIndicator)Action设置在操作进行期间显示的加载指示器。
setParameters(parameters)Action允许将自定义参数传递给回调函数。
setPersistValues(persistValues)Action指示在操作响应更新表单的 Card 后,表单值是由客户端的值还是服务器的值决定的。

详细文档

addRequiredWidget(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),
);

参数

名称类型说明
requiredWidgetString此 Action 所需的 widget 的名称。

返回

Action - 此对象,用于链式调用。


setAllWidgetsAreRequired(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));

参数

名称类型说明
allWidgetsAreRequiredBoolean操作是否需要从所有 widget 获取输入。默认值为 false

返回

Action - 此对象,用于链式调用。


setFunctionName(functionName)

设置要调用的回调函数的名称。必填。

参数

名称类型说明
functionNameString函数的名称。您可以使用包含的库中的函数,例如 Library.libFunction1

返回

Action - 此对象,用于链式调用。


setInteraction(interaction)

设置与用户的互动,仅在打开对话框时需要。如果未指定,应用会像正常一样执行 Action(例如打开链接或运行函数)来响应。

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const action = CardService.newAction()
                   .setFunctionName('handleDialog')
                   .setInteraction(CardService.Interaction.OPEN_DIALOG);

参数

名称类型说明
interactionInteraction要指定的互动。

返回

Action - 此对象,用于链式调用。


setLoadIndicator(loadIndicator)

设置在操作进行期间显示的加载指示器。

参数

名称类型说明
loadIndicatorLoadIndicator要显示的指示器。

返回

Action - 此对象,用于链式调用。


setParameters(parameters)

允许将自定义参数传递给回调函数。可选。

参数

名称类型说明
parametersObject键和值都必须是字符串。

返回

Action - 此对象,用于链式调用。


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'),
        );

参数

名称类型说明
persistValuesBoolean是否保留值。默认为 false

返回

Action - 此对象,用于链式调用。

已弃用的方法