Para a maioria dos complementos do editor, as janelas de diálogo e os painéis da barra lateral são as principais interfaces de usuário do complemento. Ambos são totalmente personalizáveis usando HTML e CSS padrão, e você pode usar o modelo de comunicação cliente-servidor do Apps Script para executar funções do Apps Script quando o usuário interage com a barra lateral ou a caixa de diálogo. Seu complemento pode definir várias barras laterais e caixas de diálogo, mas só é possível mostrar uma de cada vez.
Quando você quiser impedir que o usuário interaja com o editor até que ele faça uma escolha na interface do complemento, use uma caixa de diálogo. Caso contrário, use uma barra lateral.
Caixas de diálogo
As caixas de diálogo são painéis de janela que se sobrepõem ao conteúdo principal do editor. As caixas de diálogo do Apps Script são modais. Enquanto elas estão abertas, o usuário não pode interagir com os outros elementos da interface do editor. É possível personalizar o conteúdo e o tamanho das caixas de diálogo.
Você cria caixas de diálogo de complementos da mesma forma que as caixas de diálogo personalizadas do Apps Script. O procedimento geral recomendado é o seguinte:
- Crie um arquivo de projeto de script que defina a estrutura HTML, o CSS e o comportamento do JavaScript do lado do cliente da caixa de diálogo. Ao definir a caixa de diálogo, consulte as diretrizes de estilo do complemento do editor.
- No código do lado do servidor em que você quer abrir a caixa de diálogo, chame
HtmlService.createHtmlOutputFromFile(filename)
para criar um objetoHtmlOutput
que representa a caixa de diálogo. Se você estiver usando HTML com modelo, chameHtmlService.createTemplateFromFile(filename)
para gerar um modelo e depoisHtmlTemplate.evaluate()
para convertê-lo em um objetoHtmlOutput
. - Chame
Ui.showModalDialog(htmlOutput, dialogTitle)
para mostrar a caixa de diálogo usando esseHtmlOutput
.
As caixas de diálogo não suspendem o script do lado do servidor enquanto estão abertas. O JavaScript do lado do cliente pode fazer chamadas assíncronas para o lado do servidor usando google.script.run()
e funções de manipulador associadas. Para mais detalhes, consulte
Comunicação entre cliente e servidor.
Caixas de diálogo de abertura de arquivos
As caixas de diálogo de abertura de arquivos são pré-criadas e permitem que os usuários selecionem arquivos do Google Drive. É possível adicionar uma caixa de diálogo de abertura de arquivo ao complemento sem precisar criar um design, mas isso exige algumas configurações adicionais. Você também precisa de acesso ao projeto do Cloud Platform do complemento para ativar a API Google Picker.
Para mais detalhes, consulte Caixas de diálogo de abertura de arquivos.
Barras laterais
As barras laterais são painéis que aparecem à direita da interface do editor e são o tipo mais comum de interface de complemento. Ao contrário das caixas de diálogo, você pode continuar interagindo com os outros elementos da interface do editor enquanto uma barra lateral está aberta. As barras laterais têm uma largura fixa, mas você pode personalizar o conteúdo delas.
Você cria barras laterais de complementos da mesma forma que as barras laterais personalizadas do Apps Script. O procedimento geral recomendado é o seguinte:
- Crie um arquivo de projeto de script que defina a estrutura HTML, o CSS e o comportamento do JavaScript do lado do cliente da sua barra lateral. Ao definir a barra lateral, consulte as diretrizes de estilo do complemento do editor.
No código do lado do servidor, onde você quer que a barra lateral seja aberta, chame
HtmlService.createHtmlOutputFromFile(filename)
para criar um objetoHtmlOutput
que representa a barra lateral. Se você estiver usando HTML com modelo, chameHtmlService.createTemplateFromFile(filename)
para gerar um modelo e depoisHtmlTemplate.evaluate()
para convertê-lo em um objetoHtmlOutput
.Chame
Ui.showSidebar(htmlOutput)
para mostrar a barra lateral usando esseHtmlOutput
.
As barras laterais não suspendem o script do lado do servidor enquanto estão abertas. O JavaScript do lado do cliente pode fazer chamadas assíncronas para o lado do servidor usando google.script.run()
e funções de manipulador associadas. Para mais detalhes, consulte
Comunicação entre cliente e servidor.