2012-02-09 16 views
7

Sto lavorando allo sviluppo di un componente aggiuntivo per Firefox utilizzando Add-on SDK. Ho cambiato il mio file package.json per includere le voci per un'icona 32x32 e un'icona 64x64.Modifica dell'icona di installazione di Firefox addon

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

Inoltre, ho messo l'icona-32.png e l'icona-64.png nella directory icons dentro la mia directory del pacchetto prima di eseguire cfx xpi all'interno della directory del pacchetto.

Le icone vengono visualizzate correttamente in Addon Manager da Tools > Add-ons, ma la finestra di dialogo di installazione utilizza ancora un'icona di un pezzo di puzzle.

Sono auto-hosting del componente aggiuntivo di Firefox.

In un primo momento, ho pensato che potrebbe essere perché non ero ancora firmando il file xpi, ma ho notato che ci sono molti altri componenti aggiuntivi che non sono firmati ma hanno ancora l'icona corretta nella finestra di installazione.

Ho anche pensato che potrebbe essere perché l'icona non si trovava nel posto giusto all'interno del file xpi o forse che il file install.rdf non è stato generato correttamente dall'add-on SDK, ma ho decompresso l'xpi e ha scoperto che cfx aveva messo le icone nella directory radice e le aveva rinominate con i nomi predefiniti (icon.png e icon64.png) e aveva omesso i nomi dei file nel file install.rdf (puntandoli sulle icone predefinite).

Come posso modificare l'icona di installazione?

Le icone di installazione possono essere modificate solo quando si ospita con Firefox?

risposta

14

La finestra di dialogo di installazione non accetta l'icona dal pacchetto, utilizza le informazioni fornite dalla pagina Web. La tua pagina web ha bisogno di use InstallTrigger per avviare l'installazione, in questo senso:

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

E il tuo link sarebbe simile a questa:

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

Nota che deve ancora essere un collegamento - se l'utente ha JavaScript disabilitato la tua funzione install() non verrà chiamata. L'utente seguirà semplicemente il collegamento e l'installazione inizierà comunque.

+2

@ user198989: Oltre alla mancanza di virgolette che ho appena corretto - sì, sono sicuro che funzioni (l'ho appena provato). –

Problemi correlati