पब्लिश किए गए एडिटर के ऐड-ऑन, अपने एडिटर के एक्सटेंशन मेन्यू में कस्टम मेन्यू आइटम बना सकते हैं. 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();
}