新的 Thunderbird 插件:消息显示工具栏中的自定义菜单

问题描述 投票:0回答:1

我是 Thunderbird 插件开发的新手,我想向消息显示工具栏添加一个带有一些选项的新菜单

在我的manifest.json中,我已经使用以下配置配置了一个菜单,如Thunderbird WebExtension API文档中所述:

 "message_display_action": {
    "default_title": "__MSG_ctaMailSummarize__",
    "theme_icons": [
        {
            "dark": "images/bot-icon-light-64.webp",
            "light": "images/bot-icon-dark-64.webp",
            "size": 64
        },
        {
            "dark": "images/bot-icon-light-32.webp",
            "light": "images/bot-icon-dark-32.webp",
            "size": 32
        },
        {
            "dark": "images/bot-icon-light-16.webp",
            "light": "images/bot-icon-dark-16.webp",
            "size": 16
        }
    ],
    "type": "menu"
},

此配置成功添加新菜单:

但是,我一直无法添加新选项;新菜单显示为空。

我还没有找到任何有用的文档,但我假设我需要使用 messageDisplay API,无论如何,我不清楚如何将我之前在manifest.json中的配置与API连接起来。

有什么建议吗?

plugins thunderbird
1个回答
0
投票

要将项目添加到 Thunderbird 的菜单,您需要使用 menus API

manifest.json

{
    "manifest_version": 2,
    "name": "SuperMenu",
    "description": "No description",
    "version": "0.1",
    "message_display_action": {
        "default_title": "SuperMenu",
        "type": "menu"
    },
    "permissions": ["menus"],
    "background": {
        "scripts": ["background.js"]
    }
}

背景.js

main();

async function main() {
    const contexts = [browser.menus.ContextType.MESSAGE_DISPLAY_ACTION_MENU];
    await browser.menus.create({ contexts, title: 'Foo' });
    await browser.menus.create({ contexts, title: 'Bar' });
}

要处理单击事件,请向传递给 menus.create() 的对象添加 onclick 属性或使用 browser.menus.onClicked。 有关可用参数的更多信息,请参阅相应的文档

© www.soinside.com 2019 - 2024. All rights reserved.