0

在 package.json 中,我尝试了使用和不使用 a resource://、 a name、 a GUID、 bothnameGUID、既不name也不GUID、 With {}s、 without {}s、 with @、relative 和 absolute ,假设 ./ (相对)、 / (根)、 /data。

我根本无法让插件管理器显示插件中的图标,即使在安装之后也是如此。我什至无法让 jpmem:iconURLinstall.rdf. 它根本不存在。使用 jpm 在命令行上没有错误。控制台中没有错误,至少没有与我正在做的任何事情有关,至少没有清楚地解释它们与我正在做的任何事情有关。出于演示目的,我已经尝试过。不是一个实际的工作示例。对于我尝试的每种不同格式,我为所有大小的图标(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 答案中描述的技术有效,甚至一次都没有。在所有情况下,Firefox 都会在启动时从网络中提取一个图标。

出于某种原因,XUL 中的一项微不足道的任务(实际上是创建附加组件的最基本任务之一)似乎非常不一致,并且几乎不可能用 jpm 实现,每个人都发誓大约 20-30 种不同的特定仅适用于某些版本的工具或浏览器的技术。

同样,我什至无法在 Action Button 小部件中使用图标,但我会单独询问。似乎与 jpm run 一起使用,但与 jpm xpi 完全不同。

在撰写本文时,我仅在几天前使用jpm 1.0.7了 pull 。git master

4

2 回答 2

1

发现我的代码有问题。

"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)将resource://在.install.rdficon

          <em:iconURL>resource://GUID/data/icon-48.png</em:iconURL>
          <em:icon64URL>resource://GUID/data/icon-64.png</em:icon64URL>
于 2016-07-04T12:09:43.000 回答
0

不要使用 package.json 作为插件图标。将 icon.png 和 icon64.png 文件放在 package.json 文件附近 文件 icon.png 的尺寸必须为 48x48,icon64.png 的尺寸必须为 64x64。

于 2016-07-03T22:51:57.050 回答