Os complementos do editor
publicados podem criar itens de menu personalizados no menu Extensões do editor. É possível
inserir um menu de complementos usando o método
Ui.createAddonMenu()
e adicionar itens a ele usando o
método
Menu.addItem()
. Os menus geralmente são criados no método onOpen(e)
do complemento.
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 de serem autorizados pelo usuário. Por isso, é preciso verificar o
modo de autorização
do complemento antes de criar menus no onOpen(e)
. Não tente realizar nenhuma ação
que exija autorização (como verificar o script
Properties
)
enquanto o complemento estiver em ScriptApp.AuthMode.NONE
. Consulte o ciclo de vida da autorização para ver 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();
}