Yayınlanan düzenleyici eklentileri, düzenleyicilerinin Uzantılar menüsünde özel menü öğeleri oluşturabilir. Ui.createAddonMenu()
yöntemini kullanarak eklenti menüsü ekleyebilir ve Menu.addItem()
yöntemini kullanarak bu menüye öğe 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 ilk menüyü oluşturmalıdır. Bu nedenle, onOpen(e)
'de menü oluşturmadan önce eklentinin yetkilendirme modunu kontrol etmeniz gerekir. Eklenti ScriptApp.AuthMode.NONE
durumundayken yetkilendirme gerektiren herhangi bir işlem (ör. komut dosyasını kontrol etme Properties
) 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ü 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();
}