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 aggiungervi 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 dell'utente 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 richiede l'autorizzazione (ad esempio il controllo dello script Properties) mentre il componente aggiuntivo è in ScriptApp.AuthMode.NONE. Per maggiori dettagli sulle modalità e sul ciclo di vita dell'autorizzazione, 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();
}