एडिटर ऐड-ऑन के लिए पसंद के मुताबिक मेन्यू

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