Opublikowane dodatki do edytora
mogą tworzyć niestandardowe elementy menu w menu Rozszerzenia edytora. Wstaw menu dodatku za pomocą Ui.createAddonMenu i dodaj do niego elementy za pomocą Menu.addItem. Menu są zwykle tworzone w metodzie onOpen dodatku.
Twórz dynamiczne menu, które zmieniają się w zależności od interakcji użytkownika lub stanu dodatku. Dodatki muszą jednak utworzyć menu początkowe zanim użytkownik autoryzuje dodatek. Z tego powodu przed utworzeniem menu w onOpen sprawdź tryb autoryzacji dodatku. Gdy dodatek jest w trybie ScriptApp.AuthMode.NONE, nie wykonuj żadnych działań, które
wymagają autoryzacji (np. sprawdzania Properties skryptu)
. Więcej informacji o trybach autoryzacji i cyklu życia znajdziesz w artykule
Cykl życia autoryzacji.
Próba wykonania działań wymagających autoryzacji, gdy tryb autoryzacji to ScriptApp.AuthMode.NONE, powoduje błąd. Może to uniemożliwić wyświetlanie menu dodatku.
Poniższy przykład pokazuje, jak utworzyć dynamiczne menu dodatku dla różnych trybów autoryzacji:
function onOpen(e) {
// Or DocumentApp, SlidesApp, or FormApp.
var menu = SpreadsheetApp.getUi().createAddonMenu();
if (e && e.authMode == ScriptApp.AuthMode.NONE) {
// Add a normal menu item (works in all authorization modes).
menu.addItem('Start workflow', 'startWorkflow');
} else {
// Add a menu item based on properties (doesn't work in AuthMode.NONE).
var properties = PropertiesService.getDocumentProperties();
var workflowStarted = properties.getProperty('workflowStarted');
if (workflowStarted) {
menu.addItem('Check workflow status', 'checkWorkflow');
} else {
menu.addItem('Start workflow', 'startWorkflow');
}
// Record analytics.
UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
}
menu.addToUi();
}