Class Action

Acción

Es una acción que habilita la interactividad dentro de los elementos de la IU. La acción no se realiza directamente en el cliente, sino que invoca una función de devolución de llamada de Apps Script con parámetros opcionales.

Disponible para los complementos de Google Workspace y las apps de Google Chat.

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

Métodos

MétodoTipo de datos que se muestraDescripción breve
addRequiredWidget(requiredWidget)ActionAgrega los nombres de los widgets que esta Acción necesita para que el envío sea válido.
setAllWidgetsAreRequired(allWidgetsAreRequired)ActionIndica si esta acción requiere entradas de todos los widgets.
setFunctionName(functionName)ActionEstablece el nombre de la función de devolución de llamada a la que se llamará.
setInteraction(interaction)ActionEstablece la interacción con un usuario, solo es obligatorio cuando se abre un diálogo.
setLoadIndicator(loadIndicator)ActionEstablece el indicador de carga que se muestra mientras la acción está en curso.
setParameters(parameters)ActionPermite que se pasen parámetros personalizados a la función de devolución de llamada.
setPersistValues(persistValues)ActionIndica si los valores del formulario se determinan según los valores del cliente o del servidor después de que una respuesta de acción actualiza el Card del formulario.

Documentación detallada

addRequiredWidget(requiredWidget)

Agrega los nombres de los widgets que esta Acción necesita para que el envío sea válido. Si los widgets de esta lista no tienen un valor cuando se invoca esta acción, se aborta el envío del formulario.

Solo está disponible para las apps de Google Chat. No está disponible para complementos de 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),
);

Parámetros

NombreTipoDescripción
requiredWidgetStringEs el nombre del widget que requiere esta acción.

Volver

Action: Este objeto, para encadenar.


setAllWidgetsAreRequired(allWidgetsAreRequired)

Indica si esta acción requiere entradas de todos los widgets.

Solo está disponible para las apps de Google Chat. No está disponible para complementos de 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));

Parámetros

NombreTipoDescripción
allWidgetsAreRequiredBooleanIndica si la acción requiere entradas de todos los widgets. La configuración predeterminada es false.

Volver

Action: Este objeto, para encadenar.


setFunctionName(functionName)

Establece el nombre de la función de devolución de llamada a la que se llamará. Obligatorio.

Parámetros

NombreTipoDescripción
functionNameStringEs el nombre de la función. Puedes usar funciones de las bibliotecas incluidas, como Library.libFunction1.

Volver

Action: Este objeto, para encadenar.


setInteraction(interaction)

Establece la interacción con un usuario, solo es obligatorio cuando se abre un diálogo. Si no se especifica, la app responde ejecutando un Action, como abrir un vínculo o ejecutar una función, como de costumbre.

Solo está disponible para las apps de Google Chat. No está disponible para complementos de Google Workspace.

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

Parámetros

NombreTipoDescripción
interactionInteractionEs la interacción que se debe especificar.

Volver

Action: Este objeto, para encadenar.


setLoadIndicator(loadIndicator)

Establece el indicador de carga que se muestra mientras la acción está en curso.

Parámetros

NombreTipoDescripción
loadIndicatorLoadIndicatorEl indicador que se mostrará.

Volver

Action: Este objeto, para encadenar.


setParameters(parameters)

Permite que se pasen parámetros personalizados a la función de devolución de llamada. Opcional.

Parámetros

NombreTipoDescripción
parametersObjectTanto las claves como los valores deben ser cadenas.

Volver

Action: Este objeto, para encadenar.


setPersistValues(persistValues)

Indica si los valores del formulario se determinan según los valores del cliente o del servidor después de que una respuesta de acción actualiza el Card del formulario. Cuando se establece en true, los valores del cliente persisten después de la respuesta del servidor. Cuando se establece en false, los valores del servidor reemplazan los valores del formulario. La configuración predeterminada es false.

La persistencia de los valores del cliente ayuda a evitar situaciones en las que un formulario cambia de forma inesperada después de que un usuario realiza una edición. Por ejemplo, si un usuario edita un TextInput después de enviar un formulario, pero antes de que el servidor responda. Si los valores se conservan, la edición que hizo el usuario permanece después de que la respuesta del servidor actualiza el Card. De lo contrario, el valor del formulario vuelve al valor que el usuario envió originalmente al formulario.

La persistencia de los valores del cliente puede interferir en la capacidad de tu secuencia de comandos para borrar campos de formulario o reemplazar valores de formulario, por lo que debes evitar activar la persistencia para ese tipo de funcionalidad. Sin persistencia, se recomienda que uses LoadIndicator.SPINNER para los eventos, ya que esto bloquea la IU y evita que el usuario realice ediciones antes de que responda el servidor. Como alternativa, puedes usar LoadIndicator.NONE y asegurarte de que cada elemento del formulario tenga una acción 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'),
        );

Parámetros

NombreTipoDescripción
persistValuesBooleanIndica si se deben conservar los valores. La configuración predeterminada es false.

Volver

Action: Este objeto, para encadenar.

Métodos obsoletos