게시된 편집기 부가기능은 편집기의 확장 프로그램 메뉴 아래에 맞춤 메뉴 항목을 만들 수 있습니다. Ui.createAddonMenu()
메서드를 사용하여 부가기능 메뉴를 삽입하고 Menu.addItem()
메서드를 사용하여 항목을 추가할 수 있습니다. 메뉴는 일반적으로 부가기능의 onOpen(e)
메서드에서 생성됩니다.
사용자 상호작용 또는 부가기능 상태에 따라 변경되는 동적 메뉴를 만들 수 있습니다. 하지만 부가기능이 사용자의 승인을 받기 전에 부가기능이 초기 메뉴를 만들어야 합니다. 따라서 onOpen(e)
에서 메뉴를 구성하기 전에 부가기능의 승인 모드를 확인해야 합니다. 부가기능이 ScriptApp.AuthMode.NONE
에 있는 동안 승인이 필요한 작업 (예: 스크립트 Properties
확인)을 시도하지 마세요. 승인 모드 및 수명 주기에 관한 자세한 내용은 승인 수명 주기를 참고하세요.
다음 예는 다양한 승인 모드에 맞게 동적 부가기능 메뉴를 빌드하는 방법을 보여줍니다.
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();
}