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