افزونههای ویرایشگر منتشر شده میتوانند آیتمهای منوی سفارشی را در زیر منوی برنامههای افزودنی ویرایشگر خود ایجاد کنند. می توانید با استفاده از متد Ui.createAddonMenu() یک منوی افزودنی وارد کنید و با استفاده از متد Menu.addItem() موارد را به آن اضافه کنید. منوها معمولاً به روش onOpen(e) افزونه ایجاد می شوند.
شما می توانید منوهای پویا ایجاد کنید که بر اساس تعاملات کاربر یا وضعیت افزودنی تغییر می کنند. با این حال، افزونهها باید یک منوی اولیه ایجاد کنند تا اینکه افزونه توسط کاربر مجاز شود. به همین دلیل، قبل از ساخت منوها در onOpen(e) باید حالت مجوز افزونه را بررسی کنید. زمانی که افزونه در ScriptApp.AuthMode.NONE است، اقدامی که نیاز به مجوز دارد (مانند بررسی Properties اسکریپت) انجام ندهید. برای جزئیات بیشتر در مورد حالتهای مجوز و چرخه عمر، چرخه عمر مجوز را ببینید.
مثال زیر نحوه ساخت منوی افزودنی پویا برای حالتهای مختلف مجوز را نشان میدهد:
تاریخ آخرین بهروزرسانی 2025-01-07 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-01-07 بهوقت ساعت هماهنگ جهانی."],[[["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"]]