Class Action

操作

一种可在界面元素内实现互动性的操作。该操作不会直接在客户端上发生,而是会调用带有可选参数的 Apps 脚本回调函数

适用于 Google Workspace 加载项和 Google Chat 应用。

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

方法

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

详细文档

addRequiredWidget(requiredWidget)

添加了相应操作需要哪些 widget 才能有效提交。如果此列表中的 widget 在调用此 Action 时没有值,则表单提交会中止。

适用于 Google Workspace 加载项和 Google Chat 应用。

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相应操作所需的 widget 的名称。

返回

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


setAllWidgetsAreRequired(allWidgetsAreRequired)

表示此操作是否需要来自所有 widget 的输入。

适用于 Google Workspace 加载项和 Google Chat 应用。

// 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 - 此对象,用于链式调用。

已弃用的方法