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

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