Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Opublikowane dodatki do edytora mogą tworzyć niestandardowe pozycje menu w menu Dodatki edytora. Możesz wstawić menu dodatku, używając metody Ui.createAddonMenu(), a dodać do niego elementy, używając metody Menu.addItem(). Menu są zwykle tworzone w metodzie onOpen(e) dodatku.
Możesz tworzyć dynamiczne menu, które zmieniają się w zależności od interakcji użytkownika lub stanu dodatku. Jednak dodatki muszą utworzyć menu początkowe przed autoryzacją przez użytkownika. Dlatego przed tworzeniem menu w onOpen(e) musisz sprawdzić tryb autoryzacji dodatku. Nie próbuj podejmować żadnych działań wymagających autoryzacji (takich jak sprawdzanie skryptu
Properties), gdy dodatek jest w trybie ScriptApp.AuthMode.NONE. Więcej informacji o trybach autoryzacji i ich cyklu życia znajdziesz w artykule Cykl życia autoryzacji.
Z tego przykładu dowiesz się, jak utworzyć dynamiczne menu dodatku dla różnych trybów autoryzacji:
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();}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]],[]]