Editor के ऐड-ऑन के लिए कस्टम मेन्यू

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