Menu personalizzati per i componenti aggiuntivi Editor

I componenti aggiuntivi Editor pubblicati possono creare voci di menu personalizzate nel menu Estensioni dell'editor. Puoi inserire un menu dei componenti aggiuntivi utilizzando il metodo Ui.createAddonMenu() e aggiungere elementi utilizzando il metodo Menu.addItem(). I menu vengono in genere creati nel metodo onOpen(e) del componente aggiuntivo.

Puoi creare menu dinamici che cambiano in base alle interazioni degli utenti o allo stato del componente aggiuntivo. Tuttavia, i componenti aggiuntivi devono creare un menu iniziale prima che vengano autorizzati dall'utente. Per questo motivo, prima di creare i menu in onOpen(e), devi controllare la modalità di autorizzazione del componente aggiuntivo. Non tentare di eseguire alcuna azione che richieda l'autorizzazione (ad esempio il controllo dello script Properties) mentre il componente aggiuntivo è in ScriptApp.AuthMode.NONE. Per ulteriori dettagli sulle modalità di autorizzazione e sul ciclo di vita, consulta la sezione Ciclo di vita dell'autorizzazione.

L'esempio seguente mostra come creare un menu dei componenti aggiuntivi dinamico per diverse modalità di autorizzazione:

function onOpen(e) {
  var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or SlidesApp or FormApp.
  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();
}