תפריטים מותאמים אישית לתוספי עריכה

תוספי עריכה שפורסמו יכולים ליצור אפשרויות תפריט מותאמות אישית בתפריט תוספים של העורך שלהם. אפשר להוסיף תפריט של תוספים באמצעות אמצעי תשלום Ui.createAddonMenu() ולהוסיף אליה פריטים באמצעות Menu.addItem() . בדרך כלל, תפריטים נוצרים בשיטה onOpen(e) של התוסף.

אפשר ליצור תפריטים דינמיים שמשתנים בהתאם לאינטראקציות של המשתמשים או למצב התוסף. עם זאת, התוספים חייבים ליצור תפריט ראשוני לפני התוסף מורשה על ידי המשתמש. לכן, עליכם לבדוק את מצב ההרשאה של התוסף לפני יצירת תפריטים ב-onOpen(e). אל תנסו לבצע פעולה כלשהי שמחייבת הרשאה (כמו בדיקת הסקריפט Properties) בזמן שהתוסף נמצא בסטטוס ScriptApp.AuthMode.NONE. לפרטים נוספים על מצבי האישור ומחזור החיים שלהם, ראו מחזור החיים של הרשאות.

אפשר להיעזר בדוגמה הבאה כדי לבנות תפריט של תוספים דינמיים מצבי הרשאה:

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();
}