Publication de modules complémentaires de l'éditeur
peuvent créer des éléments de menu personnalisés dans le menu Extensions de leur éditeur. Vous pouvez
insérez un menu de modules complémentaires à l'aide de la
Méthode Ui.createAddonMenu()
et d'y ajouter des éléments
Menu.addItem()
. Les menus sont généralement créés avec la méthode onOpen(e)
du module complémentaire.
Vous pouvez créer des menus dynamiques qui changent en fonction des interactions des utilisateurs ou des modules complémentaires
de l'état. Toutefois, les modules complémentaires doivent créer un menu initial avant qu'ils ne soient
autorisé par l'utilisateur. Pour cette raison, vous devez vérifier
mode Autorisation
avant de créer des menus dans onOpen(e)
. N'essayez pas d'effectuer une action
qui nécessite une autorisation (comme vérifier le script
Properties
)
lorsque le module complémentaire est dans ScriptApp.AuthMode.NONE
. Consultez le
cycle de vie des autorisations
pour en savoir plus sur les modes d'autorisation et le cycle de vie.
L'exemple suivant montre comment créer un menu de modules complémentaires dynamiques pour différents modes d'autorisation:
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();
}