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