Veröffentlichte Editor-Add-ons
können unter dem Menü Erweiterungen des Editors benutzerdefinierte Menüelemente erstellen. Fügen Sie mit Ui.createAddonMenu ein Add-on-Menü ein und fügen Sie mit Menu.addItem Elemente hinzu. Menüs werden in der Regel in der onOpen-Methode des Add-ons erstellt.
Erstellen Sie dynamische Menüs, die sich je nach Nutzerinteraktionen oder Add-on-Status ändern. Add-ons müssen jedoch ein anfängliches Menü erstellen, bevor das Add-on vom Nutzer autorisiert wird. Prüfen Sie daher den
Autorisierungsmodus des Add-ons, bevor Sie Menüs in onOpen erstellen. Führen Sie keine Aktionen aus, für die
eine Autorisierung erforderlich ist, z. B. das Prüfen von Script-
Properties, während sich das
Add-on in ScriptApp.AuthMode.NONE befindet. Weitere Informationen zu den Autorisierungsmodi und zum Lebenszyklus finden Sie unter
Lebenszyklus der Autorisierung.
Wenn Sie Aktionen ausführen, für die eine Autorisierung erforderlich ist, während der Autorisierungsmodus ScriptApp.AuthMode.NONE ist, wird ein Fehler ausgegeben. Dadurch werden Ihre Add-on-Menüs möglicherweise nicht angezeigt.
Im folgenden Beispiel wird gezeigt, wie Sie ein dynamisches Add-on-Menü für verschiedene Autorisierungsmodi erstellen:
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();
}