Os projetos do Google Apps Script vinculados ao Google Docs, Google Planilhas ou Google Formulários podem mostrar elementos da interface do usuário, como alertas, solicitações, notificações, caixas de diálogo e barras laterais predefinidos. Esses elementos geralmente contêm conteúdo personalizado do serviço HTML e são abertos com frequência em itens de menu. Nos Formulários, os elementos da interface do usuário ficam visíveis apenas para um editor que abre o formulário para modificá-lo, não para um participante.
Caixas de diálogo de alerta

Um alerta é uma caixa de diálogo pré-criada que é aberta em um editor do Google Docs, Planilhas, Apresentações ou Formulários. Ela
mostra uma mensagem e um botão OK. Um título e botões alternativos são
opcionais. É semelhante a chamar
window.alert
em JavaScript do lado do cliente em um navegador da Web.
Os alertas suspendem o script do lado do servidor enquanto a caixa de diálogo está aberta. O script é retomado depois que o usuário fecha a caixa de diálogo, mas as conexões JDBC não persistem durante a suspensão.
Como mostrado no exemplo a seguir, os apps Documentos, Formulários, Apresentações e Planilhas usam o método Ui.alert, que está disponível em três variantes. Para substituir o botão padrão OK, transmita um valor da enumeração
Ui.ButtonSet como o argumento buttons. Para avaliar em qual botão o usuário clicou, compare o valor de retorno
de alert com o enum Ui.Button.
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu("Custom Menu")
.addItem("Show alert", "showAlert")
.addToUi();
}
function showAlert() {
const ui = SpreadsheetApp.getUi(); // Same variations.
const result = ui.alert(
"Please confirm",
"Are you sure you want to continue?",
ui.ButtonSet.YES_NO,
);
// Process the user's response.
if (result === ui.Button.YES) {
// User clicked "Yes".
ui.alert("Confirmation received.");
} else {
// User clicked "No" or X in the title bar.
ui.alert("Permission denied.");
}
}
Caixas de diálogo de solicitação

Um comando é uma caixa de diálogo pré-criada que é aberta em um editor do Google Docs, Planilhas, Apresentações ou Formulários. Ele
mostra uma mensagem, um campo de entrada de texto e um botão OK. Um título e
botões alternativos são opcionais. É semelhante a chamar
window.prompt
em JavaScript do lado do cliente em um navegador da Web.
Os comandos suspendem o script do lado do servidor enquanto a caixa de diálogo está aberta. O script é retomado depois que o usuário fecha a caixa de diálogo, mas as conexões JDBC não persistem durante a suspensão.
Como mostrado no exemplo a seguir, os apps Documentos, Formulários, Apresentações e Planilhas usam o método Ui.prompt, que está disponível em três variantes. Para substituir o botão padrão OK, transmita um valor do enum Ui.ButtonSet como o argumento buttons. Para avaliar a resposta do usuário, capture o valor de retorno
de prompt e chame
PromptResponse.getResponseText
para recuperar a entrada do usuário e compare o valor de retorno de
PromptResponse.getSelectedButton
com o enumerador Ui.Button.
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu("Custom Menu")
.addItem("Show prompt", "showPrompt")
.addToUi();
}
function showPrompt() {
const ui = SpreadsheetApp.getUi(); // Same variations.
const result = ui.prompt(
"Let's get to know each other!",
"Please enter your name:",
ui.ButtonSet.OK_CANCEL,
);
// Process the user's response.
const button = result.getSelectedButton();
const text = result.getResponseText();
if (button === ui.Button.OK) {
// User clicked "OK".
ui.alert("Your name is " + text + ".");
} else if (button === ui.Button.CANCEL) {
// User clicked "Cancel".
ui.alert("I didn't get your name.");
} else if (button === ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert("You closed the dialog.");
}
}
Avisos na planilha
Um "toast" é uma pequena janela de diálogo no canto inferior direito de um editor do Planilhas que mostra uma mensagem, mas não suspende o script. É uma boa maneira de mostrar mensagens de status ou atualizações que não exigem interação do usuário.
Como mostrado no exemplo a seguir, o app Planilhas usa o método
Spreadsheet.toast.
Os toasts só estão disponíveis no app Planilhas.
function showToast() {
SpreadsheetApp.getActiveSpreadsheet().toast("Task completed successfully.");
}
Caixas de diálogo personalizadas

Uma caixa de diálogo personalizada pode mostrar uma interface de usuário do serviço HTML em um editor do Documentos, Planilhas, Apresentações ou Formulários.
As caixas de diálogo personalizadas não suspendem o script do lado do servidor enquanto a caixa de diálogo está aberta.
Como são assíncronas, a função do lado do servidor que abre a caixa de diálogo
é concluída imediatamente. Para transmitir dados da caixa de diálogo personalizada de volta ao servidor,
use a API google.script no seu
código do lado do cliente.
A caixa de diálogo pode se fechar chamando
google.script.host.close
no lado do cliente de uma interface de serviço HTML. A caixa de diálogo não pode ser fechada por
outras interfaces, apenas pelo usuário ou por ela mesma.
Como mostrado no exemplo a seguir, os apps Documentos, Formulários, Apresentações e Planilhas usam o método Ui.showModalDialog para abrir a caixa de diálogo.
Code.gs
function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Custom Menu') .addItem('Show dialog', 'showDialog') .addToUi(); } function showDialog() { const html = HtmlService.createHtmlOutputFromFile('Page') .setWidth(400) .setHeight(300); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showModalDialog(html, 'My custom dialog'); }
Page.html
Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />
Barras laterais personalizadas

Uma barra lateral pode mostrar uma interface de usuário do serviço HTML em um editor do Google Docs, Formulários, Apresentações e Planilhas.
As barras laterais não suspendem o script do lado do servidor enquanto a caixa de diálogo está aberta. O
componente do lado do cliente pode fazer chamadas assíncronas para o script do lado do servidor
usando a API google.script para
interfaces do serviço HTML.
A barra lateral pode ser fechada chamando
google.script.host.close
no lado do cliente de uma interface de serviço HTML. A barra lateral não pode ser fechada por
outras interfaces, apenas pelo usuário ou por ela mesma.
Como mostrado no exemplo a seguir, os apps Documentos, Formulários, Apresentações e Planilhas usam o método Ui.showSidebar para abrir a barra lateral.
Code.gs
function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } function showSidebar() { const html = HtmlService.createHtmlOutputFromFile('Page') .setTitle('My custom sidebar'); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showSidebar(html); }
Page.html
Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />
Caixas de diálogo de abertura de arquivos
O Google Picker é uma API JavaScript que permite aos usuários selecionar ou fazer upload de arquivos do Google Drive. Use a biblioteca do Google Picker no serviço HTML para criar uma caixa de diálogo personalizada que permite aos usuários selecionar arquivos ou fazer upload de novos, e depois transmitir a seleção de volta para o script.
Requisitos
O uso do Google Picker com o Google Apps Script tem vários requisitos:
Configure seu ambiente para o Google Picker.
Seu projeto de script precisa usar um projeto padrão do Google Cloud.
Transmita o mesmo número do projeto na nuvem para
PickerBuilder.setAppIdse estiver usando o escopodrive.file.O manifesto do projeto do Apps Script precisa especificar os escopos de autorização exigidos pela API Google Picker para que
ScriptApp.getOAuthTokenretorne o token correto paraPickerBuilder.setOauthtoken.Restrinja a chave de API definida em
PickerBuilder.setDeveloperKeyao Apps Script. Em Restrições de aplicativo, siga estas etapas:- Selecione Referenciadores HTTP (sites).
- Em Restrições de sites, clique em Adicionar um item.
- Clique em Referenciador e digite
*.google.com. - Adicione outro item e insira
*.googleusercontent.comcomo o referenciador. - Clique em Concluído.
Chame
PickerBuilder.setOrigin.
Exemplo
O exemplo a seguir mostra o Google Picker no Apps Script.