Las acciones de complementos proporcionan un comportamiento interactivo a los widgets. Cuando creas una acción, defines lo que sucede cuando el usuario selecciona o actualiza un widget.
En la mayoría de los casos, puedes definir acciones de complementos con
Action
objetos que proporciona el servicio de tarjetas de Google Apps Script.
Cada Action se asocia con
una función de devolución de llamada cuando la creas. Implementas la función de devolución de llamada para realizar los pasos seleccionados cuando el usuario interactúa con el widget. También debes
vincular el Action al widget
con una función de controlador de widget adecuada que
defina qué tipo de interacción activa la devolución de llamada
Action.
Para configurar un widget con un Action
, sigue este proceso:
- Crea el
Actionobjeto y especifica la función de devolución de llamada que debe ejecutar junto con los parámetros que requiera. - Llama a la función de controlador de widget adecuada en el
widget con el objeto
Action. - Implementa la función de devolución de llamada para promulgar el comportamiento requerido.
No confundas los Action
objetos con los CardAction
objetos. CardAction
objetos son elementos del menú del encabezado de la tarjeta, mientras que
Action objetos definen
respuestas a las interacciones del usuario con la IU.
Funciones de controlador de widgets
Para vincular un widget a un Action
o a otro comportamiento, usa una función de controlador de widgets. La función de controlador determina qué tipo de interacción (por ejemplo, hacer clic en el widget o editar un campo de texto) activa el comportamiento de la acción. La función de controlador también define los pasos que realiza la IU, si corresponde, después de que se completa la acción.
En la siguiente tabla, se enumeran los diferentes tipos de controladores para widgets y los widgets con los que se usan:
| Función de controlador | Activa la acción | Widgets aplicables | Descripción |
|---|---|---|---|
setOnChangeAction |
El valor del widget cambia. |
DatePicker
DateTimePicker
SelectionInputSwitch
TextInput
TimePicker
|
Establece un Action
que ejecuta una función de Apps Script cuando el widget pierde el foco, por ejemplo, cuando el usuario ingresa texto en una entrada y presiona Intro. El
controlador pasa automáticamente un
objeto de evento a la función a la que llama.
Puedes insertar información adicional de parámetros en este objeto de evento
si se selecciona. |
setOnClickAction |
El usuario hace clic en el widget. |
CardActionImageImageButtonDecoratedTextTextButton
|
Establece una Action
que ejecuta una función de Apps Script cuando el usuario hace clic
en el widget. El controlador pasa automáticamente un
objeto de evento a la función a la que llama.
Puedes insertar información de parámetros opcional en este objeto de evento. |
setComposeAction |
El usuario hace clic en el widget. |
CardActionImageImageButtonDecoratedTextTextButton
|
Específico de Gmail. Establece un
Action
que compila un borrador de correo electrónico y, luego, lo presenta al usuario en una
ventana de redacción de la IU de Gmail. Puedes compilar el borrador como un mensaje nuevo
o una respuesta al mensaje abierto en Gmail. Cuando el
controlador llama a la función de devolución de llamada de compilación de borrador, pasa un
objeto de evento a la función de devolución de llamada.
Consulta
Cómo redactar mensajes de borrador
para obtener más detalles. |
setOnClickOpenLinkAction |
El usuario hace clic en el widget. |
CardActionImageImageButtonDecoratedTextTextButton
|
Establece un Action
para abrir una URL cuando el usuario hace clic en el widget. Usa este controlador cuando debas construir la URL o cuando se deban realizar otras acciones antes de que se abra el vínculo. De lo contrario, suele ser más sencillo usar setOpenLink.
Solo puedes abrir la URL en una ventana nueva. Cuando se cierra, puedes hacer que la
IU vuelva a cargar el complemento. |
setOpenLink |
El usuario hace clic en el widget. |
CardActionImageImageButtonDecoratedTextTextButton
|
Abre directamente una URL cuando el usuario hace clic en el widget. Usa este
controlador cuando conozcas la URL y solo necesites abrirla. De lo contrario, usa
setOnClickOpenLinkAction.
Puedes abrir la URL en una ventana nueva o en una superposición. Cuando se cierra, puedes
hacer que la IU vuelva a cargar el complemento. |
setSuggestionsAction |
El usuario ingresa texto en una entrada. |
TextInput
|
Establece una Action
que ejecuta una función de Apps Script cuando el usuario ingresa
texto en un widget de entrada de texto. El controlador pasa automáticamente un
objeto de evento a la función a la que llama.
Consulta
Sugerencias de autocompletar
para entradas de texto para obtener más detalles. |
Funciones de devolución de llamada
Las funciones de devolución de llamada se ejecutan cuando se activa un
Action. Debido a que las funciones de devolución de llamada son funciones de Apps Script, puedes hacer que realicen casi cualquier otra función de secuencia de comandos.
A veces, una función de devolución de llamada muestra un objeto de respuesta específico. Estos tipos de respuestas indican operaciones adicionales que deben ocurrir después de que finaliza la ejecución de la devolución de llamada, como mostrar una tarjeta nueva o presentar sugerencias de autocompletar. Cuando la función de devolución de llamada debe mostrar un objeto de respuesta específico, usas una clase de compilador en el servicio de tarjetas para construir ese objeto.
En la siguiente tabla, se muestra cuándo las funciones de devolución de llamada deben mostrar un objeto de respuesta específico para acciones específicas. Todas estas acciones son independientes de la aplicación host específica que extiende el complemento:
| Acción intentada | La función de devolución de llamada debe mostrar |
|---|---|
| Navegación | ActionResponse |
Mostrar una Notification |
ActionResponse |
Abrir un vínculo con setOnClickOpenLinkAction |
ActionResponse |
| Mostrar sugerencias de autocompletar | SuggestionResponse |
| Usar una acción universal | UniversalActionResponse |
| Otras acciones | Nothing |
Acciones para aplicaciones host de Google Workspace
Además de estas acciones, cada aplicación host tiene su propio conjunto de acciones que solo se pueden realizar en ese host. Para obtener más información, consulta las siguientes guías:
Cuando uses las clases de compilador de respuestas, llama al método build para producir los objetos de respuesta. De lo contrario, se producirá un error.
Las acciones universales se definen
en el manifiesto del proyecto y no necesitan
Action, pero sus
funciones de devolución de llamada deben mostrar una
UniversalActionResponse.
Objetos de eventos de acción
Cuando el complemento activa un
Action, la IU construye automáticamente un objeto de evento JSON y lo pasa como argumento a la función de devolución de llamada
Action. Este objeto de evento contiene información sobre el contexto actual del usuario del cliente, como los valores actuales de todos los widgets interactivos de la tarjeta que se muestra.
Los objetos de eventos de acción tienen una estructura JSON específica que organiza la información que contienen. Se usa la misma estructura cuando se activa un activador de página principal para crear una página principal o cuando se activa un activador contextual para actualizar la visualización del complemento.
Consulta Objetos de eventos para obtener una explicación completa de la estructura del objeto de evento.
Los complementos de Gmail usaban una versión simplificada de esta estructura de objeto de evento, que ahora está obsoleta. Para la retrocompatibilidad,
todos los campos de objeto de evento de los complementos originales de Gmail
aún se encuentran dentro de la nueva estructura de objeto de evento (consulta
la estructura del objeto de evento).
Sin embargo, la misma información se reproduce en las commonEventObject
y de evento de Gmail objeto
subestructuras. Si actualizas un complemento de Gmail a un complemento de Google Workspace, ajusta tu código para usar los campos de objeto de evento actualizados. Finalmente, se quitarán los campos de objeto de evento originales de Gmail.