2012-02-09 61 views
7

我正在使用Add-on SDK開發Firefox附加組件。我更改了我的package.json文件以包含32x32圖標和64x64圖標的條目。更改Firefox附加安裝圖標

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

此外,我放置圖標32.png和圖標64.png目錄icons我的包的目錄軟件包目錄中運行cfx xpi之前。

圖標正確顯示在Tools > Add-ons的插件管理器中,但安裝對話框仍然使用拼圖塊圖標。我自己託管Firefox附加組件。起初,我認爲這可能是因爲我還沒有簽署xpi文件,但我注意到還有很多其他的附加組件沒有簽名,但在安裝對話框中仍然有正確的圖標。

我也認爲這可能是因爲圖標沒有位於xpi文件中的正確位置,或者可能是由add-on SDK沒有正確生成install.rdf,但我解壓縮了xpi並發現cfx已經將圖標放在根目錄下,並將它們重命名爲默認名稱(icon.png和icon64.png),並且在install.rdf中省略了文件名(將它們指向默認圖標)。

如何更改安裝圖標?

只有在使用Firefox進行託管時才能更改安裝圖標?

回答

14

安裝對話框不從包中取出圖標,它使用網頁提供的信息。您的網頁需要use 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()函數。用戶只需按照鏈接進行操作,無論如何安裝都將開始。

+2

@ user198989:除了缺少我剛剛修復的引號外 - 是的,我相信它可以工作(只是試過了)。 – 2012-10-17 19:16:07