jpm 插件无法在插件管理器中显示图标
jpm addon can't get icon to display in Addon Manager
在 package.json 中,我尝试过使用和不使用 resource://
、name
、GUID
、name
和 GUID
,既不name
也不GUID
,有{}s
,没有{}s
,有@
,相对和绝对,假设./(相对),/(根), /数据.
我根本无法让插件管理器显示插件中的图标,即使在安装之后也是如此。我什至不能让 jpm 在 install.rdf
中创建一个 em:iconURL
。它甚至不存在。命令行使用jpm没有报错。控制台中没有错误,至少 none 与我正在做的任何事情有关,至少没有那么清楚地解释它们与我正在做的任何事情有关。为了演示我尝试过的内容。不是一个实际的工作示例。对于我尝试的每种不同格式,我为所有尺寸的图标(16、32、48、64)放置了相同的格式 URI。
package.json (demo snippet):
...
"id": "{GUID}",
"name": "my_addon",
"icons": {
"48": "resource://@{GUID}/data/myaddon-48.png",
"48": "resource://GUID/data/myaddon-48.png",
"48": "resource://@my_addon/data/myaddon-48.png",
"48": "resource://my_addon/data/myaddon-48.png",
"64": "myaddon-64.png",
"64": "/myaddon-64.png",
"64": "./myaddon-64.png",
"64": "data/myaddon-64.png",
"64": "/data/myaddon-64.png",
"64": "./data/myaddon-64.png",
},
...
任何 MDN 文章或任何 SO 答案中描述的技术绝对 none 有效,一次也没有。在所有情况下,Firefox 都会在启动时从网络中提取一个图标。
出于某种原因,XUL 中的一项微不足道的任务(实际上是创建附加组件的最基本任务之一)似乎非常不一致并且几乎不可能用 jpm 实现,每个人都发誓大约有一个20-30 种不同的特定技术,仅适用于特定版本的工具或浏览器。
同样,我什至无法让图标在操作按钮小部件中工作,但我会单独询问。似乎适用于 jpm 运行,但根本不适用于 jpm xpi。
我正在使用 jpm 1.0.7
从 git master
中提取的 git master
仅在几天前,截至撰写本文时。
插件图标不要使用package.json。
将 icon.png 和 icon64.png 文件放在 package.json 文件附近
文件 icon.png 必须具有 48x48 尺寸,icon64.png 必须具有 64x64 尺寸。
发现我的代码有问题。
"icons": {
^ -- herein lies the problem
这应该是 icon
单数。用于指定文件位置的各种其他令人困惑的选项仍然存在,但似乎最简单和最干净(目前)的是相对路径。
"icon": {
"16": "data/icon-16.png",
"32": "data/icon-32.png",
"48": "data/icon-48.png",
"64": "data/icon-64.png"
},
然后 jpm
脚本 (lib/rdf.js:68-69,92) 将根据在 icon
.
<em:iconURL>resource://GUID/data/icon-48.png</em:iconURL>
<em:icon64URL>resource://GUID/data/icon-64.png</em:icon64URL>
在 package.json 中,我尝试过使用和不使用 resource://
、name
、GUID
、name
和 GUID
,既不name
也不GUID
,有{}s
,没有{}s
,有@
,相对和绝对,假设./(相对),/(根), /数据.
我根本无法让插件管理器显示插件中的图标,即使在安装之后也是如此。我什至不能让 jpm 在 install.rdf
中创建一个 em:iconURL
。它甚至不存在。命令行使用jpm没有报错。控制台中没有错误,至少 none 与我正在做的任何事情有关,至少没有那么清楚地解释它们与我正在做的任何事情有关。为了演示我尝试过的内容。不是一个实际的工作示例。对于我尝试的每种不同格式,我为所有尺寸的图标(16、32、48、64)放置了相同的格式 URI。
package.json (demo snippet):
...
"id": "{GUID}",
"name": "my_addon",
"icons": {
"48": "resource://@{GUID}/data/myaddon-48.png",
"48": "resource://GUID/data/myaddon-48.png",
"48": "resource://@my_addon/data/myaddon-48.png",
"48": "resource://my_addon/data/myaddon-48.png",
"64": "myaddon-64.png",
"64": "/myaddon-64.png",
"64": "./myaddon-64.png",
"64": "data/myaddon-64.png",
"64": "/data/myaddon-64.png",
"64": "./data/myaddon-64.png",
},
...
任何 MDN 文章或任何 SO 答案中描述的技术绝对 none 有效,一次也没有。在所有情况下,Firefox 都会在启动时从网络中提取一个图标。
出于某种原因,XUL 中的一项微不足道的任务(实际上是创建附加组件的最基本任务之一)似乎非常不一致并且几乎不可能用 jpm 实现,每个人都发誓大约有一个20-30 种不同的特定技术,仅适用于特定版本的工具或浏览器。
同样,我什至无法让图标在操作按钮小部件中工作,但我会单独询问。似乎适用于 jpm 运行,但根本不适用于 jpm xpi。
我正在使用 jpm 1.0.7
从 git master
中提取的 git master
仅在几天前,截至撰写本文时。
插件图标不要使用package.json。 将 icon.png 和 icon64.png 文件放在 package.json 文件附近 文件 icon.png 必须具有 48x48 尺寸,icon64.png 必须具有 64x64 尺寸。
发现我的代码有问题。
"icons": {
^ -- herein lies the problem
这应该是 icon
单数。用于指定文件位置的各种其他令人困惑的选项仍然存在,但似乎最简单和最干净(目前)的是相对路径。
"icon": {
"16": "data/icon-16.png",
"32": "data/icon-32.png",
"48": "data/icon-48.png",
"64": "data/icon-64.png"
},
然后 jpm
脚本 (lib/rdf.js:68-69,92) 将根据在 icon
.
<em:iconURL>resource://GUID/data/icon-48.png</em:iconURL>
<em:icon64URL>resource://GUID/data/icon-64.png</em:icon64URL>