Menus personnalisés pour les modules complémentaires d'éditeurs
Les modules complémentaires d'éditeur publiés peuvent créer des éléments de menu personnalisés dans le menu Extensions de leur éditeur. Vous pouvez insérer un menu de module complémentaire à l'aide de la méthode Ui.createAddonMenu() et y ajouter des éléments à l'aide de la méthode Menu.addItem(). Les menus sont généralement créés dans 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 de l'état du module complémentaire. Toutefois, les modules complémentaires doivent créer un menu initial avant d'être autorisés par l'utilisateur. Par conséquent, vous devez vérifier le mode d'autorisation du module complémentaire avant de créer des menus dans onOpen(e). N'essayez pas d'effectuer d'action nécessitant une autorisation (par exemple, la vérification du script Properties) lorsque le module complémentaire est en ScriptApp.AuthMode.NONE. Pour en savoir plus sur les modes et le cycle de vie de l'autorisation, consultez le cycle de vie de l'autorisation.
L'exemple suivant montre comment créer un menu de modules complémentaires dynamique pour différents modes d'autorisation:
functiononOpen(e){varmenu=SpreadsheetApp.getUi().createAddonMenu();//OrDocumentApporSlidesApporFormApp.if(e && e.authMode==ScriptApp.AuthMode.NONE){//Addanormalmenuitem(worksinallauthorizationmodes).menu.addItem('Start workflow','startWorkflow');}else{//Addamenuitembasedonproperties(doesn't work in AuthMode.NONE).varproperties=PropertiesService.getDocumentProperties();varworkflowStarted=properties.getProperty('workflowStarted');if(workflowStarted){menu.addItem('Check workflow status','checkWorkflow');}else{menu.addItem('Start workflow','startWorkflow');}//Recordanalytics.UrlFetchApp.fetch('http://www.example.com/analytics?event=open');}menu.addToUi();}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/18 (UTC).
[null,null,["Dernière mise à jour le 2024/12/18 (UTC)."],[[["Published Editor Add-ons can create custom menu items under the Extensions menu using `Ui.createAddonMenu()` and `Menu.addItem()`, typically within the add-on's `onOpen(e)` method."],["While unpublished add-ons can create top-level menus, it's recommended to use `Ui.createAddonMenu()` for published add-ons to ensure consistent user experience."],["Add-ons must create an initial menu before user authorization and adjust menu items dynamically based on the authorization mode (`ScriptApp.AuthMode`) to avoid errors."],["The provided example demonstrates building a dynamic add-on menu that adapts to different authorization modes, using `ScriptApp.AuthMode.NONE` to control actions requiring authorization."]]],["Editor add-ons create custom menu items under the **Extensions** menu using `Ui.createAddonMenu()` and `Menu.addItem()`, typically within the `onOpen(e)` method. Menus must be defined *before* user authorization, necessitating a check of the add-on's authorization mode. Dynamic menus can change based on user interactions. Actions requiring authorization should not be performed when `AuthMode.NONE`. The provided example shows a dynamic menu construction for different modes, adding either \"Start workflow\" or \"Check workflow status\".\n"]]