Düzenleyici Eklentileri için özel menüler

Yayınlanan Düzenleyici Eklentileri, düzenleyicilerinin Uzantılar menüsü altında özel menü öğeleri oluşturabilir. Ui.createAddonMenu() yöntemini kullanarak eklenti menüsü ekleyebilir ve Menu.addItem() yöntemini kullanarak menü ekleyebilirsiniz. Menüler genellikle eklentinin onOpen(e) yöntemiyle oluşturulur.

Kullanıcı etkileşimlerine veya eklenti durumuna göre değişen dinamik menüler oluşturabilirsiniz. Ancak eklentiler, kullanıcı tarafından yetkilendirilmeden önce bir başlangıç menüsü oluşturmalıdır. Bu nedenle, onOpen(e) içinde menü oluşturmadan önce eklentinin yetkilendirme modunu kontrol etmeniz gerekir. Eklenti ScriptApp.AuthMode.NONE'dayken yetkilendirme gerektiren herhangi bir işlem (Properties komut dosyasını kontrol etme gibi) yapmaya çalışmayın. Yetkilendirme modları ve yaşam döngüsü hakkında daha fazla bilgi için yetkilendirme yaşam döngüsüne bakın.

Aşağıdaki örnekte, farklı yetkilendirme modları için dinamik eklenti menüsünün nasıl oluşturulacağı gösterilmektedir:

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