Menu personalizzati per componenti aggiuntivi Editor

Pubblicazione di componenti aggiuntivi di Editor possono creare voci di menu personalizzate nel menu Estensioni dell'editor. Puoi inserisci il menu di un componente aggiuntivo utilizzando Metodo Ui.createAddonMenu() e aggiungere elementi utilizzando Menu.addItem() . In genere i menu vengono creati con il metodo onOpen(e) del componente aggiuntivo.

Puoi creare menu dinamici che cambiano in base alle interazioni degli utenti o a componenti aggiuntivi stato. Tuttavia, i componenti aggiuntivi devono creare un menu iniziale prima che vengano autorizzati dall'utente. Per questo motivo, devi controllare la proprietà modalità di autorizzazione prima di creare i menu in onOpen(e). Non tentare di intraprendere alcuna azione che richiede l'autorizzazione (ad esempio, controllare lo script Properties) mentre il componente aggiuntivo è in ScriptApp.AuthMode.NONE. Consulta le ciclo di vita dell'autorizzazione per ulteriori dettagli sulle modalità di autorizzazione e sul ciclo di vita.

L'esempio seguente mostra come creare un menu di componenti aggiuntivi dinamico per diversi 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();
}