Web App HTML、JS + Google Apps 脚本:如何在 GAS return 后返回到我的应用程序?
Web App HTML, JS + Google Apps Script: How to go back to my app after return in GAS?
我正在使用 HTML、CSS 和 JavaScript 构建一个网络应用程序,并使用 Google 电子表格作为数据库。我打算使用 PhoneGap 将我的网络应用程序变成一个真正的应用程序。
我能够使用 Google 可视化 API 从我的 Google Sheet 中读取内容,现在我正在研究写作选项:我使用了使用 Google Apps 脚本 设置的函数,在 Google 电子表格中,它工作正常。
这是我的应用程序的工作方式和我需要的:
- I query my first Google Spreadsheet (Database)
- If I cannot find what I need, I can make a request
- I send the request: the action of the form send my data to the Google Apps Script code
- The GAS writes my data in a second Google Spreadsheet (Register)
- The GAS should send me back to my page
- The page sends a feedback on screen
正如您通过加粗点所理解的那样,我无法返回到我的网页...我不知道是否有任何方法或功能可以做到这一点。我唯一发现的是使用 ContentService
来制作页面 "write another form and send it using JavaScript",但我认为这不是最好的解决方案...
我会post我的代码在这里...希望有人能帮助我
function doPost(e){
var sheet = SpreadsheetApp.openById("myID").getSheetByName('SheetName');
var column = 1;
var colArray = sheet.getRange(2, column, sheet.getLastRow()).getValues();
var maxi = Math.max.apply(Math, colArray);
var id = maxi+1;
var name = e.parameter['name'];
var surname = e.parameter['surname'];
var serial = e.parameter['serial'];
var eMail = e.parameter['mail'];
var text = e.parameter['text'];
var area = e.parameter['area'];
var date = new Date();
var ans = ""
var flag = "Work In Progress";
var vals = [id, date, name, surname, serial, eMail, area, text, ans, flag];
var sheetObj = sheet.appendRow(vals);
// return ContentService.createTextOutput(someOutput);
在 return 行上,我应该返回我的网站 app/app,但我找不到方法。有人可以帮助我或给我一些建议吗?
非常感谢您的帮助!
S.
这是您问题的解决方案。
而不是使用 return ContentService.createTextOutput(someOutput);
使用 HtmlService
到 return 到您的表单
return HtmlService.createHtmlOutputFromFile('redirect').setSandboxMode(HtmlService.SandboxMode.IFRAME);
您的 HTML 文件应如下所示,
更新: redirect.html
应该与您的应用程序脚本文件在同一个项目中。
redirect.html
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<title>This Is A Sample Title</title>
<script>
function test()
{
window.location.href = "www.hostname.com";
}
</script>
</head>
<body onload="test()">
Login
</body>
</html>
看看这是否适合你。
我正在使用 HTML、CSS 和 JavaScript 构建一个网络应用程序,并使用 Google 电子表格作为数据库。我打算使用 PhoneGap 将我的网络应用程序变成一个真正的应用程序。
我能够使用 Google 可视化 API 从我的 Google Sheet 中读取内容,现在我正在研究写作选项:我使用了使用 Google Apps 脚本 设置的函数,在 Google 电子表格中,它工作正常。
这是我的应用程序的工作方式和我需要的:
- I query my first Google Spreadsheet (Database)
- If I cannot find what I need, I can make a request
- I send the request: the action of the form send my data to the Google Apps Script code
- The GAS writes my data in a second Google Spreadsheet (Register)
- The GAS should send me back to my page
- The page sends a feedback on screen
正如您通过加粗点所理解的那样,我无法返回到我的网页...我不知道是否有任何方法或功能可以做到这一点。我唯一发现的是使用 ContentService
来制作页面 "write another form and send it using JavaScript",但我认为这不是最好的解决方案...
我会post我的代码在这里...希望有人能帮助我
function doPost(e){
var sheet = SpreadsheetApp.openById("myID").getSheetByName('SheetName');
var column = 1;
var colArray = sheet.getRange(2, column, sheet.getLastRow()).getValues();
var maxi = Math.max.apply(Math, colArray);
var id = maxi+1;
var name = e.parameter['name'];
var surname = e.parameter['surname'];
var serial = e.parameter['serial'];
var eMail = e.parameter['mail'];
var text = e.parameter['text'];
var area = e.parameter['area'];
var date = new Date();
var ans = ""
var flag = "Work In Progress";
var vals = [id, date, name, surname, serial, eMail, area, text, ans, flag];
var sheetObj = sheet.appendRow(vals);
// return ContentService.createTextOutput(someOutput);
在 return 行上,我应该返回我的网站 app/app,但我找不到方法。有人可以帮助我或给我一些建议吗?
非常感谢您的帮助!
S.
这是您问题的解决方案。
而不是使用 return ContentService.createTextOutput(someOutput);
使用 HtmlService
到 return 到您的表单
return HtmlService.createHtmlOutputFromFile('redirect').setSandboxMode(HtmlService.SandboxMode.IFRAME);
您的 HTML 文件应如下所示,
更新: redirect.html
应该与您的应用程序脚本文件在同一个项目中。
redirect.html
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<title>This Is A Sample Title</title>
<script>
function test()
{
window.location.href = "www.hostname.com";
}
</script>
</head>
<body onload="test()">
Login
</body>
</html>
看看这是否适合你。