En la mayoría de los complementos de editor, las ventanas de diálogo y los paneles de la barra lateral son las interfaces de usuario principales del complemento. Ambos se pueden personalizar por completo con HTML y CSS estándar, y puedes usar el modelo de comunicación cliente-servidor de Apps Script para ejecutar funciones de Apps Script cuando el usuario interactúa con la barra lateral o el diálogo. Tu complemento puede definir varias barras laterales y diálogos, pero solo puede mostrar uno a la vez.
Si quieres evitar que el usuario interactúe con el editor hasta que elija en la interfaz de complementos, usa un diálogo. De lo contrario, usa una barra lateral.
Diálogos
Los diálogos son paneles de ventana que se superponen con el contenido del editor principal. Los diálogos de Apps Script son modales; mientras están abiertos, el usuario no puede interactuar con los demás elementos de la interfaz del editor. Puedes personalizar el contenido y el tamaño de los diálogos.
Los diálogos de complementos se compilan de la misma manera que los diálogos personalizados de Apps Script. El procedimiento general recomendado es el siguiente:
- Crea un archivo de proyecto de secuencia de comandos que defina la estructura HTML del diálogo, CSS y el comportamiento de JavaScript del cliente. Cuando definas el diálogo, consulta los lineamientos de estilo para complementos del Editor.
- En el código del servidor en el que quieres que se abra el diálogo, llama a
HtmlService.createHtmlOutputFromFile(filename)
para crear un objetoHtmlOutput
que represente el diálogo. Como alternativa, si usas HTML con plantilla, puedes llamar aHtmlService.createTemplateFromFile(filename)
para generar una plantilla y, luego, aHtmlTemplate.evaluate()
para convertirla en un objetoHtmlOutput
. - Llama a
Ui.showModalDialog(htmlOutput, dialogTitle)
para mostrar el diálogo con eseHtmlOutput
.
Los diálogos no suspenden la secuencia de comandos del servidor mientras están abiertos. El JavaScript del cliente puede realizar llamadas asíncronas al servidor mediante google.script.run()
y las funciones de controlador asociadas. Para obtener más detalles, consulta Comunicación de cliente a servidor.
Diálogos de apertura de archivos
Los diálogos de apertura de archivo son diálogos compilados previamente que permiten a los usuarios seleccionar archivos de su unidad de Google Drive. Puedes agregar un diálogo de apertura de archivo a tu complemento sin necesidad de diseñarlo, pero requiere configuración adicional. También necesitas acceso al proyecto de Cloud Platform del complemento para habilitar la API del selector de Google.
Para obtener todos los detalles, consulta Diálogos de archivo abierto.
Barras laterales
Las barras laterales son paneles que aparecen en la parte derecha de la interfaz del editor y son el tipo de interfaz de complemento más común. A diferencia de los diálogos, puedes seguir interactuando con los demás elementos de la interfaz del editor mientras una barra lateral está abierta. Las barras laterales tienen un ancho fijo, pero puedes personalizar su contenido.
Las barras laterales de complementos se compilan de la misma manera que las barras laterales personalizadas de Apps Script. El procedimiento general recomendado es el siguiente:
- Crea un archivo de proyecto de secuencia de comandos que defina la estructura HTML de la barra lateral, CSS y el comportamiento de JavaScript del cliente. Cuando definas la barra lateral, consulta los lineamientos de estilo para complementos del editor.
En el código del servidor en el que quieres que se abra la barra lateral, llama a
HtmlService.createHtmlOutputFromFile(filename)
para crear un objetoHtmlOutput
que represente la barra lateral. Como alternativa, si usas HTML con plantilla, puedes llamar aHtmlService.createTemplateFromFile(filename)
para generar una plantilla y, luego, aHtmlTemplate.evaluate()
para convertirla en un objetoHtmlOutput
.Llama a
Ui.showSidebar(htmlOutput)
para mostrar la barra lateral con eseHtmlOutput
.
Las barras laterales no suspenden la secuencia de comandos del servidor mientras están abiertas. El JavaScript del cliente puede realizar llamadas asíncronas al servidor mediante google.script.run()
y las funciones de controlador asociadas. Para obtener más detalles, consulta Comunicación de cliente a servidor.