Menús personalizados para complementos del editor

Complementos del editor publicados pueden crear elementos de menú personalizados en el menú Extensiones del editor. Puedes insertar un menú de complementos con el Método Ui.createAddonMenu() y agregarle elementos Menu.addItem() . Por lo general, los menús se crean en el método onOpen(e) del complemento.

Puedes crear menús dinámicos que cambian en función de las interacciones de los usuarios o los complementos para cada estado. Sin embargo, los complementos deben crear un menú inicial antes de que se cree el complemento. autorizadas por el usuario. Por este motivo, debes revisar el complemento modo de autorización antes de crear menús en onOpen(e). No intentes realizar ninguna acción que requiere autorización (como revisar la secuencia de comandos Properties). mientras que el complemento está en ScriptApp.AuthMode.NONE. Consulta la ciclo de vida de la autorización para obtener más información sobre los modos de autorización y el ciclo de vida.

En el siguiente ejemplo, se muestra cómo crear un menú de complementos dinámicos para diferentes modos de autorización:

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();
}