【问题标题】:Web App HTML, JS + Google Apps Script: How to go back to my app after return in GAS?Web App HTML、JS + Google Apps 脚本:在 GAS 中返回后如何返回我的应用程序?
【发布时间】:2017-06-07 08:14:51
【问题描述】:

我正在使用 HTML、CSS 和 JavaScript 并使用 Google 电子表格作为数据库来构建网络应用程序。我打算使用 PhoneGap 将我的网络应用变成真正的应用。

我能够使用 Google 可视化 API 从我的 Google 表格中读取内容,现在我正在处理编写选项:我在 Google 电子表格中使用了一个带有 Google Apps 脚本 的函数集它工作正常。

这就是我的应用程序的工作方式和我需要的:

  1. 我查询了我的第一个 Google 电子表格(数据库)
  2. 如果我找不到我需要的东西,我可以提出请求
  3. 我发送请求:表单的操作将我的数据发送到 Google Apps 脚本代码
  4. GAS 将我的数据写入第二个 Google 电子表格(注册)
  5. GAS 应该将我送回我的页面
  6. 页面在屏幕上发送反馈

您可以通过粗体点理解,我无法返回我的网页...我不知道是否有任何方法或功能可以做到这一点。我发现的唯一一件事是使用 ContentService 使页面“编写另一个表单并使用 JavaScript 发送”,但我认为这不是最好的解决方案...

我会把我的代码贴在这里...希望有人可以帮助我

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);

在退货线路上,我应该回到我的网络应用程序/应用程序,但我找不到办法。有人可以帮助我或给我一些建议吗?

非常感谢您的帮助!

S.

【问题讨论】:

    标签: javascript html google-apps-script google-sheets phonegap


    【解决方案1】:

    这是您问题的解决方案。

    而不是使用return ContentService.createTextOutput(someOutput);

    使用HtmlService 返回您的表单

    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>
    

    看看这是否适合你。

    【讨论】:

    • 为了确定,redirect.html 文件必须在 GAS 的同一个项目中,它会指向我的页面,对吗?
    • 代码显示页面(我可以看到“登录”),但test() 功能不起作用...我什至尝试使用window.location.replace 但没有...
    • 您是否将www.hostname.com 替换为您的表单网址?
    • 有效!他只需要使用https 协议的整个地址。
    • 只是一个问题:当它重新加载我的页面时,地址是我的谷歌脚本之一,并且页面不是在移动版本中加载,而是在自定义版本中......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2016-08-10
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多