Es una acción que habilita la interactividad dentro de los elementos de la IU. La acción no ocurre directamente en el cliente, sino que invoca una función de devolución de llamada de Apps Script con parámetros opcionales.
Está disponible para complementos de Google Workspace y apps de Google Chat.
var image = CardService.newImage() .setOnClickAction(CardService.newAction() .setFunctionName("handleImageClick") .setParameters({imageSrc: 'carImage'}));
Métodos
Método | Tipo de datos que se muestra | Descripción breve |
---|---|---|
addRequiredWidget(requiredWidget) | Action | Agrega los nombres de los widgets que necesita esta acción para un envío válido. |
setAllWidgetsAreRequired(allWidgetsAreRequired) | Action | Indica si esta acción requiere entradas de todos los widgets. |
setFunctionName(functionName) | Action | Establece el nombre de la función de devolución de llamada a la que se llamará. |
setInteraction(interaction) | Action | Configura la interacción con un usuario; solo es necesaria cuando se abre un diálogo. |
setLoadIndicator(loadIndicator) | Action | Establece el indicador de carga que se muestra mientras la acción está en curso. |
setParameters(parameters) | Action | Permite que los parámetros personalizados se pasen a la función de devolución de llamada. |
setPersistValues(persistValues) | Action | Indica si los valores del formulario están determinados por 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 necesita esta acción para un envío válido. Si los widgets de esta lista no tienen un valor cuando se invoca esta acción, se anula el envío del formulario.
Solo está disponible para las apps de Google Chat. No está disponible para los complementos de 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));
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
requiredWidget | String | El nombre del widget requerido por esta Acción. |
Devolvedor
Action
: Este objeto se usa 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 los 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
Nombre | Tipo | Descripción |
---|---|---|
allWidgetsAreRequired | Boolean | Si la acción requiere entradas de todos los widgets. La configuración predeterminada es false . |
Devolvedor
Action
: Este objeto se usa para encadenar.
setFunctionName(functionName)
Establece el nombre de la función de devolución de llamada a la que se llamará. Obligatorio.
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
functionName | String | Es el nombre de la función. Puedes usar funciones de las bibliotecas incluidas, como Library.libFunction1 . |
Devolvedor
Action
: Este objeto se usa para encadenar.
setInteraction(interaction)
Configura la interacción con un usuario; solo es necesaria cuando se abre un diálogo. Si no se especifica, la app ejecuta un Action
, como abrir un vínculo o ejecutar una función, como siempre.
Solo está disponible para las apps de Google Chat. No está disponible para los complementos de Google Workspace.
const action = CardService.newAction() .setFunctionName('handleDialog') .setInteraction(CardService.Interaction.OPEN_DIALOG);
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
interaction | Interaction | La interacción que se especificará. |
Devolvedor
Action
: Este objeto se usa para encadenar.
setLoadIndicator(loadIndicator)
Establece el indicador de carga que se muestra mientras la acción está en curso.
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
loadIndicator | LoadIndicator | El indicador que se mostrará. |
Devolvedor
Action
: Este objeto se usa para encadenar.
setParameters(parameters)
Permite que los parámetros personalizados se pasen a la función de devolución de llamada. Opcional.
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
parameters | Object | Tanto las claves como los valores deben ser strings. |
Devolvedor
Action
: Este objeto se usa para encadenar.
setPersistValues(persistValues)
Indica si los valores del formulario están determinados por los valores del cliente o del servidor después de que una respuesta de acción actualiza el Card
del formulario. Cuando se configura en true
, los valores del cliente se conservan 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
.
Conservar los valores de 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 mantienen, la edición que realizó el usuario se mantiene después de que la respuesta del servidor actualiza el Card
. De lo contrario, el valor del formulario muestra el valor que el usuario envió originalmente al formulario.
Los valores de cliente persistentes pueden interferir en la capacidad de tu secuencia de comandos de borrar campos del formulario o
anular valores de formulario. Por lo tanto, evita activar la persistencia para ese tipo de funcionalidad. Sin persistencia, te recomendamos que uses LoadIndicator.SPINNER
para eventos, ya que esto bloquea la IU y evita que el usuario realice ediciones antes de que el servidor responda. 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
Nombre | Tipo | Descripción |
---|---|---|
persistValues | Boolean | Si se deben conservar los valores. La configuración predeterminada es false . |
Devolvedor
Action
: Este objeto se usa para encadenar.