Изменение значка установки аддона Firefox - PullRequest
7 голосов
/ 09 февраля 2012

Я работаю над разработкой дополнения для Firefox с использованием SDK для дополнений .Я изменил свой файл package.json, включив в него записи для значка 32x32 и значка 64x64.

{
    ...
    "icon": "icons/icon-32.png",
    "icon64": "icons/icon-64.png",
    ...
}

Кроме того, я поместил icon-32.png и icon-64.png в каталог icons внутримой каталог пакета перед запуском cfx xpi внутри каталога пакета.

Значки корректно отображаются в менеджере дополнений с Tools > Add-ons, но в диалоговом окне установки по-прежнему используется значок кусочка головоломки.

Я самостоятельно размещаю надстройку Firefox.

Сначала я подумал, что это может быть из-за того, что я еще не подписывал файл xpi, но заметил, что есть много других дополнений.-не, которые не подписаны, но все еще имеют правильный значок в диалоговом окне установки.

Я также подумал, что это может быть потому, что значок не находится в нужном месте в файле xpi или, возможно, установка.rdf не был правильно сгенерирован дополнительным SDK, но я разархивировал xpi и обнаружил, что cfx поместил значки в корневой каталог и переименовал их в имена по умолчанию (icon.png и icon64.png) и пропустил имена файлов в файле install.rdf (указывая их на значки по умолчанию).

Как изменить значок установки?

Можно ли изменять значки установки только при хостинге с Firefox?

1 Ответ

14 голосов
/ 09 февраля 2012

Диалог установки не берет значок из пакета, он использует информацию, предоставленную веб-страницей.Ваша веб-страница должна использовать InstallTrigger, чтобы начать установку, следующим образом:

function install(link)
{
  params = {};
  params[link.getAttribute("addonName")] = {
    URL: link.href,
    IconURL: link.getAttribute("iconURL")
  };
  InstallTrigger.install(params);
}

И ваша ссылка будет выглядеть так:

<a href="foo.xpi" addonName="Foo" iconURL="foo.png"
   onclick="install(this); return false;">
  Install
</a>

Обратите внимание, что это все еще должна быть ссылка - если у пользователя отключен JavaScript, ваша функция install() не будет вызываться.Вместо этого пользователь просто перейдет по ссылке, и установка начнется независимо.

...