firefox扩展程序没有显示在任何菜单中,但似乎已安装

时间:2015-04-21 15:32:14

标签: firefox-addon firefox-addon-sdk

我使用mozilla-addon-sdk和cfx工具构建firefox扩展。

扩展程序仅显示切换按钮,通常显示在工具栏菜单中。

使用此命令启动扩展程序时,一切正常:

$ cfx run

但是如果我生成这样的xpi文件:

$ cfx xpi

并尝试从此文件手动安装我的扩展程序,即使firefox告诉我安装正常,我也无法在任何工具栏/菜单中看到它。但是,扩展名在firefox模块列表中报告。

我在商店发布了该问题,问题仍然存在,无法从任何菜单访问它。

我正在考虑xpi代中出现问题,但我找不到。

我还想也许我应该添加一些代码来自动将切换按钮放在工具栏的某个位置,但是找不到解决我问题的任何东西。即使我的扩展应该在工具栏中添加一些额外的代码,为什么从cfx运行时它会工作呢?

有什么想法吗?

[update]这里是我使用的代码。

manifest.json:

{
  "name": "firefox-extension",
  "title": "...",
  "id": "...",
  "description": "...",
  "icon": "data/my-icon.png",
  "author": "...",
  "license": "MPL 2.0",
  "version": "0.1"
}

main.js:

var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var tabs = require("sdk/tabs");

var button = ToggleButton({
 id: "extension-button",
 label: "extension",
 icon: {
   "48": "./my-icon.png"
 },
 onChange: handleChange
});

function handleChange(state) {
 if (state.checked) {
   var panel = panels.Panel({
     contentURL: self.data.url("http://my_url"),
     onHide: handleHide,
     width: 600,
     height: 600
   });

   panel.show({
     position: button
   });
 }
}

function handleHide() {
 button.state('window', {checked: false});
}

1 个答案:

答案 0 :(得分:4)

您需要为按钮指定图标大小16和32:

  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "48": "./icon-48.png"
  },

享受!