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

Yayınlanmış Düzenleyici eklentileri, düzenleyicilerinin Uzantılar menüsünde özel menü öğeleri oluşturabilir. Ui.createAddonMenu() yöntemini kullanarak bir eklenti menüsü ekleyebilir ve Menu.addItem() yöntemini kullanarak bu menüye öğeler ekleyebilirsiniz. Menüler genellikle eklentinin onOpen(e) yönteminde 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 durumundayken yetkilendirme gerektiren herhangi bir işlem yapmaya çalışmayın (ör. komut dosyasını kontrol etme Properties). Yetkilendirme modları ve yaşam döngüsü hakkında daha fazla bilgi için yetkilendirme yaşam döngüsü bölümüne bakın.

Aşağıdaki örnekte, farklı yetkilendirme modları için dinamik bir 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();
}