Menus personalizados para complementos do editor

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Os complementos do editor publicados podem criar itens de menu personalizados no menu Complementos do editor. É possível inserir um menu complementar usando o método Ui.createAddonMenu() e adicionar itens a ele usando o método Menu.addItem(). Os menus normalmente são criados no método onOpen(e) dos complementos.

Você pode criar menus dinâmicos que mudam com base nas interações do usuário ou no estado do complemento. No entanto, os complementos precisam criar um menu inicial antes que o complemento seja autorizado pelo usuário. Por isso, é preciso verificar o modo de autorização do complemento antes de criar menus em onOpen(e). Não tente fazer nada que exija autorização, como verificar o script Properties, enquanto o complemento está em ScriptApp.AuthMode.NONE. Consulte o ciclo de vida da autorização para mais detalhes sobre os modos de autorização e o ciclo de vida.

O exemplo a seguir mostra como criar um menu complementar dinâmico para diferentes modos de autorização:

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