Google apps script 五秒钟后自动关闭Google应用程序脚本UiApp

Google apps script 五秒钟后自动关闭Google应用程序脚本UiApp,google-apps-script,panel,Google Apps Script,Panel,我想在特定秒数后自动关闭此UiApp: function showConfirmationDialogue() { var app = UiApp.createApplication().setHeight('80').setWidth('400'); app.setTitle('test'); var panel = app.createVerticalPanel(); app.add(panel); var doc = SpreadsheetApp.getActive(

我想在特定秒数后自动关闭此UiApp:

function showConfirmationDialogue() {
  var app = UiApp.createApplication().setHeight('80').setWidth('400');
  app.setTitle('test');
  var panel = app.createVerticalPanel();
  app.add(panel);

  var doc = SpreadsheetApp.getActive();
  doc.show(app);

  // this part doesn't seem to work
  Utilities.sleep(5000);
  app.close();
  return app;
}

谢谢

调用
doc.show(app)
时会显示您创建的Ui,您可以更新或关闭它的唯一方法是使用以
返回app
结尾的处理程序函数

因此,不可能从创建UI的同一个函数中执行您想要的操作,因为它只“返回”了一次

我知道只有一个技巧可以实现您想要的,那就是使用处理程序触发器源,它将使用的“特殊”属性自动调用关闭处理程序函数。这是代码,它使用了一个复选框,您当然可以在最终代码中使其不可见

function showConfirmationDialogue() {
  var app = UiApp.createApplication().setHeight('80').setWidth('400');
  app.setTitle('test');
  var panel = app.createVerticalPanel();
  app.add(panel);
  var handler = app.createServerHandler('closeWindow');
  var chk = app.createCheckBox('checkBox to set invisible in real function').setValue(false,true).addValueChangeHandler(handler);
  app.add(chk);
  chk.setValue(true,true)//.setVisible(false);
  var doc = SpreadsheetApp.getActive();
  doc.show(app);
}

function closeWindow(){
  Utilities.sleep(5000);
  var app = UiApp.getActiveApplication().close();
  return app;
}
您可以使用相同的过程以任何方式修改UiApp实例,更改标签文本,添加小部件。。。你想要什么都行。

相关问题:。