Il servizio HTML ti consente di pubblicare pagine web che possono interagire con le funzioni di Apps Script lato server. È particolarmente utile per creare app web o aggiungere interfacce utente personalizzate in Documenti, Fogli e Moduli Google. Puoi persino utilizzarlo per generare il corpo di un'email.
Creare file HTML
Per aggiungere un file HTML al progetto Apps Script:
- Apri l'editor di Apps Script.
- A sinistra, fai clic su Aggiungi un file > HTML.
All'interno del file HTML puoi scrivere la maggior parte del codice HTML, CSS e JavaScript lato client standard. La pagina verrà pubblicata come HTML5, anche se alcune funzionalità avanzate di HTML5 non sono disponibili, come spiegato in Limitazioni.
Il file può includere anche scriptlet di modelli che vengono elaborati sul server prima che la pagina venga inviata all'utente, in modo simile a PHP, come spiegato nella sezione sull'HTML basato su modelli.
Pubblicare HTML come applicazione web
Per creare un'app web con il servizio HTML, il codice deve includere una funzione doGet()
che indica allo script come pubblicare la pagina. La funzione deve restituire un oggetto HtmlOutput
, come mostrato in questo esempio.
Code.gs
function doGet() { return HtmlService.createHtmlOutputFromFile('Index'); }
Index.html
<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> Hello, World! </body> </html>
Una volta creato il framework di base, non devi fare altro che salvare una versione dello script, quindi eseguire il deployment dello script come app web.
Dopo aver eseguito il deployment dello script come app web, puoi anche incorporarlo in un sito Google.
Pubblicare HTML come interfaccia utente di Documenti, Fogli, Presentazioni o Moduli Google
Il servizio HTML può visualizzare una finestra di dialogo o una barra laterale in Documenti, Fogli, Presentazioni o Moduli Google se lo script è legato al contenitore del file. In Google Moduli, le interfacce utente personalizzate sono visibili solo a un editor che apre il modulo per modificarlo, non a un utente che lo apre per rispondere.
A differenza di un'app web, uno script che crea un'interfaccia utente per un documento, un foglio di lavoro o un modulo non richiede specificamente una funzione doGet()
e non è necessario salvare una versione dello script o eseguirne il deployment. La funzione che apre l'interfaccia utente deve invece passare il file HTML come oggetto HtmlOutput
ai metodi showModalDialog())
o showSidebar()
dell'oggetto Ui
per il documento, il modulo o il foglio di lavoro attivo.
Questi esempi includono alcune funzionalità aggiuntive per praticità: la funzione onOpen()
crea un menu personalizzato che semplifica
l'apertura dell'interfaccia e il pulsante nel file HTML richiama un metodoclose()
speciale dell'API
google.script.host
per chiudere l'interfaccia.
Code.gs
// Use this code for Google Docs, Slides, Forms, or Sheets. function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Dialog') .addItem('Open', 'openDialog') .addToUi(); } function openDialog() { var html = HtmlService.createHtmlOutputFromFile('Index'); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showModalDialog(html, 'Dialog title'); }
Index.html
<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> Hello, World! <input type="button" value="Close" onclick="google.script.host.close()" /> </body> </html>
Tieni presente che la prima volta che vuoi visualizzare questa interfaccia utente, devi eseguire manualmente la funzione onOpen()
nell'editor di script o ricaricare la finestra dell'editor di Documenti, Fogli o Moduli (chiudendo l'editor di script). Dopodiché, il menu personalizzato dovrebbe apparire entro pochi secondi ogni volta che apri il file. Scegli Dialog > Apri per visualizzare l'interfaccia.