2012-06-20 283 views
3

是否可以關閉在Apps Script中打開的UI窗口?Google Apps腳本關閉()

我認爲答案是否定的每個:http://code.google.com/p/google-apps-script-issues/issues/detail?id=474&can=1&q=.close%28%29&colspec=Stars%20Opened%20ID%20Type%20Status%20Summary%20Component%20Owner

但我想看看是否有其他的意見。

我有一個「等待窗口」彈出,我想在活動結束時關閉。


var app = UiApp.getActiveApplication(); 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 

var sheet = getSheetWithSubmissions(ss); 

// create UI app, this works fine 

app = createWaitPleaseUI(sheet); 

ss.show(app); 

//simulated activity 

Utilities.sleep(5000); 

//this doesn't work despite being in the documentation 

app.close(); 

認爲這是不可能的,但希望谷歌會從他們的文件轉儲它,如果它不能這樣做。

作爲一種解決方法,我可以調出第二個GUI,顯示「工作完成,單擊確定」,然後工作正常。

回答

6

您必須返回app對象以更新任何更改,甚至關閉。

改爲將最後一行改爲return app.close()

0

您應該更徹底地閱讀文檔,它清楚地解釋了電子表格中的用戶界面需要以實際關閉返回來結束。此外,我建議你可以相信答案來自頂級貢獻者,而不是相信你總是正確反對文檔和其他人......沒有冒犯,只是有點謙虛總是受歡迎的:-)

這裏從documentation提取證實的一段代碼:

// Close everything return when the close button is clicked 
function close() { 
    var app = UiApp.getActiveApplication(); 
    app.close(); 
    // The following line is REQUIRED for the widget to actually close. 
    return app; 
} 
+1

注意,你指的是這個問題不適用您的例子:它是關於獨立的用戶界面,用戶界面沒有在電子表格中。 –