Menus personalizados para complementos do Editor

Complementos do Editor publicados podem criar itens de menu personalizados no menu Extensões do editor. Você pode inserir um menu de complementos usando o Método Ui.createAddonMenu() e adicionar itens a ela usando o Menu.addItem() . Geralmente, os menus são criados no método onOpen(e) do complemento.

É possível criar menus dinâmicos que mudam com base nas interações do usuário ou em complementos estado. No entanto, os complementos precisam criar um menu inicial antes de serem instalados. autorizadas pelo usuário. Por isso, é necessário verificar modo de autorização antes de criar menus em onOpen(e). Não tente realizar nenhuma ação que requer autorização (como a verificação do script Properties). enquanto o complemento estiver em ScriptApp.AuthMode.NONE. Consulte a 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 de complemento 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();
}