我的脚本上有已发布的服务,我将其传递给电子邮件的链接。一旦活动帐户调用该服务,UiApp就会打开以进行进一步处理。我使用doGet()来做到这一点。完成UiApp上的处理后,我有一个Submit按钮,链接到服务器点击处理程序,该处理程序应该处理通过UiApp表单进行的更改。虽然我可以使用此UiApp更改电子表格中我希望更改的值,但在单击“提交”按钮时仍遇到两个问题:
我已经阅读了很多内容,关闭并返回应用程序,UiApp应该关闭,但它没有发生,我假设这是因为只有在没有涉及serverClickHandler时才会发生这种情况。我错了。
有人可以帮助我解决问题1并解决问题2吗?我的doGet和clickHandler函数的相关版本附在下面。
function doGet(e) //On invoking service in the mail.
{
//Adding all other elements of the UiApp here
/* …
… All other elements of the UiApp
…
*/
//Adding Submit button to the UiApp
var button = app.createButton('Submit');
var handler = app.createServerClickHandler('click').addCallbackElement(panel);
button.addClickHandler(handler);
panel.add(button);
app.add(panel);
return app;
}
function click(eventInfo) {
var app = UiApp.getActiveApplication();
//Processing the actions that have to be performed on hitting the submit button
/* …
… Processing the actions that have to be performed on hitting the submit button
…
*/
app.close();
return app;
}
答案 0 :(得分:2)
Browser.messageBox在已发布的UiApps中不可用,您应该使用一个不可见的标签,直到您在流程结束时将其显示为止。 另一个问题也不是问题:UiApp无法关闭浏览器窗口,只能让UI的主面板不可见。
结合这两项修改将允许您隐藏表单并将其替换为“已完成,感谢提交”消息。