Esta es el arreglo más completa que encomtrarás brindar, sin embargo mírala detenidamente y valora si es compatible a tu trabajo.
Solución:
Si bien HtmlService le permite servir HTML, no es un “alojamiento” de páginas, y no puede acceder a los diversos archivos html en su proyecto de Apps Script por URL directamente. En cambio, su aplicación web tendrá una URL cuando se publique, y esa es la única URL que tiene.
Esta es una forma en la que puede servir páginas separadas de su secuencia de comandos y hacer que se comporten de manera similar a los enlaces de archivos html.
los doGet()
A la función se le pasa un evento cuando se la llama, y podemos aprovechar eso para indicar qué página queremos que se sirva. Si nuestro ID de aplicación web es
así es como se verá una URL más una cadena de consulta que solicita una página específica:
https://script.google.com/macros/s//dev?page=my1
Usando HTML con plantilla, podemos generar la URL necesaria + la cadena de consulta sobre la marcha. En nuestro doGet()
solo necesitamos analizar la cadena de consulta para determinar qué página servir.
Aquí está el guión, con dos páginas de muestra que contienen botones para pasar de una a otra.
Código.gs
/**
* Get the URL for the Google Apps Script running as a WebApp.
*/
function getScriptUrl()
var url = ScriptApp.getService().getUrl();
return url;
/**
* Get "home page", or a requested page.
* Expects a 'page' parameter in querystring.
*
* @param event e Event passed to doGet, with querystring
* @returns String/html Html to be served
*/
function doGet(e)
Logger.log( Utilities.jsonStringify(e) );
if (!e.parameter.page)
// When no specific page requested, return "home page"
return HtmlService.createTemplateFromFile('my1').evaluate();
// else, use page parameter to pick an html file from the script
return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate();
mi1.html
Source = my1.html
mi2.html
Source = my2.html
La aplicación web de Google Apps Script está diseñada principalmente para usarse como una aplicación web de una sola página. Pero también se puede utilizar como una aplicación de varias páginas (no recomendado). Aquí hay una aplicación web de muestra:
Código.gs:
//@return Base Url
function getUrl()
return ScriptApp.getService().getUrl()
//@return Html page raw content string
function getHtml(hash)
return HtmlService.createHtmlOutputFromFile(hash).getContent()
//@return provided page in the urlquery '?page=[PAGEID]' or main index page
function doGet(e)
pagina1.html
This is Page 1
Hello World!
pagina2.html
This is Page2
Goodbye World!
índice.html
Single Page App
Single Page App Demo
Loading...
Referencias:
- guía de aplicaciones web
- setChangeHandler
Te mostramos comentarios y puntuaciones
Nos puedes añadir valor a nuestra información colaborando tu experiencia en los comentarios.