Notizie: lo sai che puoi installare Firefox anche su dispositivi Apple iPhone e iPad? Provalo subito!

Autore Topic: Custom protocol + addons [osx]  (Letto 775 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Mr.Meazza

  • Post: 7
Custom protocol + addons [osx]
« il: 14 Gennaio 2013 17:51:13 »
Salve a tutti
mi presento, sono Mario, programmatore actionscript,
l'azienda per cui lavoro sta lavorando ad un software per la lettura di ebook, (realizzata in flex+zinc)
a me è spettato l'ingrato compito di occuparmi dell'installer, e di definire un protocollo custom (es:myapp://) per far sì che al click di tale link si apra l'applicazione passandogli l'url.
su windows non ho riscontrato nessun problema, su mac invece parecchi...
In particolare su firefox, non mi riconosce il protocollo.

a questo punto vi porgo una domanda:

E' possibile creare un componente che permetta di poter poter aprire quella tipologia di link ?

da quel che ho capito è possible modificare le preferenze di firefox tramite nsIPrefBranch ma non so proprio da dove partire.

Mille grazie in anticipo
;)






Offline Mr.Meazza

  • Post: 7
Re: Custom protocol + addons [osx]
« Risposta #1 il: 17 Gennaio 2013 11:05:41 »
ragazzi per piacere mi date qualche spunto ?
non so proprio dove mettere le mani ...  :(

grazie


Offline Mr.Meazza

  • Post: 7
Re: Custom protocol + addons [osx]
« Risposta #3 il: 18 Gennaio 2013 16:21:13 »
Grazie mille klades,
sto facendo delle prove, per adesso non riesco neanche a installare il componente... direi che sono sulla buona strada! :D
comunque ho seguito alcuni tutorial sulla struttura delle directories, comprimo la cartella rinomino in .xpi la cartella cerco di installare il componente e poi vien fuori il messaggio di errore che il file è danneggiato...

Offline michro

  • Moderatore
  • Post: 22438
Re: Custom protocol + addons [osx]
« Risposta #4 il: 18 Gennaio 2013 17:01:45 »
Non ho la minima idea sull'argomento di cui state discutendo  :oops: :) ma...
Qual è il componente che devi installare e da dove si scarica?

Offline Mr.Meazza

  • Post: 7
Re: Custom protocol + addons [osx]
« Risposta #5 il: 18 Gennaio 2013 17:05:54 »
per ora non si può ancora scaricare...
è un componente che sto creando io ad hoc per conto dell'azienda per cui lavoro :)

Offline michro

  • Moderatore
  • Post: 22438
Re: Custom protocol + addons [osx]
« Risposta #6 il: 18 Gennaio 2013 17:10:49 »
Ok, grazie. Mi ritiro in punta di piedi... Buon lavoro! :wink:

Vediamo se klades ripassa di qua con qualche suggerimento utile.

Offline Iceberg

  • Moderatore
  • Post: 9093
Re: Custom protocol + addons [osx]
« Risposta #7 il: 18 Gennaio 2013 20:09:58 »
Controlla che quando comprimi la cartella per creare il file zip (che rinomini in xpi) la compressione sia fatta dalla giusta directory. Che estraendo il file appena creato non ci sia un livello di cartelle in più o in meno. Fai un confronto con una qualsiasi estensione funzionante.

Offline Mr.Meazza

  • Post: 7
Re: Custom protocol + addons [osx]
« Risposta #8 il: 04 Febbraio 2013 16:09:47 »
ciao
eccomi, ho dovuto lasciare in standby il progetto per fare altro...
dunque continua a non funzionare,
ho una cartella fooprotocol@foo.com
dentro ci stanno install.rdf, chrome.mainifest una cartella components che al suo interno contiene un componente .js...
faccio uno zip (.xpi o .jar ) della cartella fooprotocol installo e mi dice che il file è danneggiato ...

Offline Iceberg

  • Moderatore
  • Post: 9093
Re: Custom protocol + addons [osx]
« Risposta #9 il: 04 Febbraio 2013 16:24:06 »
Fai uno zip del contenuto della cartella, non della cartella fooprotocol.
Entra nella cartella seleziona install.rdf, chrome.mainifest e la cartella components e comprimili in formato zip.
Poi rinomina il file zip in "nome-estensione.xpi".
« Ultima modifica: 04 Febbraio 2013 16:26:11 da Iceberg »

Offline Mr.Meazza

  • Post: 7
Re: Custom protocol + addons [osx]
« Risposta #10 il: 04 Febbraio 2013 16:32:05 »
Perfetto grazie :)
ora comunque non mi da più lo stesso errore, mi dice che non è compatibile con ff 18.0.1 ....  :?

potrebbe essere un problema del componente js ? o dell'install.rdf ?

Codice: [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>fooprotocol@foo.com</em:id>
<em:unpack>true</em:unpack>
    <em:type>2</em:type>
    <em:name>FooProtocol</em:name>
    <em:version>0.1</em:version>
    <em:creator>foo.it</em:creator>
    <em:targetApplication>
      <Description>
        <em:id>{dcd7d5c0-6b7e-11e2-bcfd-0800200c9a66}</em:id>
        <em:minVersion>10.0.1</em:minVersion>
        <em:maxVersion>18.0.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Custom protocol + addons [osx]
« Risposta #11 il: 05 Febbraio 2013 13:01:38 »
L'id che hai messo è sbagliato, quello di Firefox è {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Leggi qui per ulteriori info: https://developer.mozilla.org/en-US/docs/Install_Manifests

Offline Mr.Meazza

  • Post: 7
Re: Custom protocol + addons [osx]
« Risposta #12 il: 05 Febbraio 2013 17:04:13 »
Grazie mille klades,
ora riesco a pacchettizzare e installare  tutto...
Infatti adesso vedo che non funziona un piffero, non riesco più ad andare avanti  :dislike:

posto ancora un po di codice magari qualcuno riesce a darmi qualche input :)
Codice: [Seleziona]
Components.utils.import("resource://gre/modules(XPCOMUtils.jsm");

function Foo(){}

Foo.prototype = {

scheme: "foo",
protocolFlags: Components.interfaces.URI_IS_UI_RESOURCE,

newURI:function( aSpec , aOriginCharset , aBaseURI )
{
var uri = Component.classes["@mozilla.org/network/simple-uri;1"].createInstance(Components.interfaces.nsIURI);
uri.spec = aSpec;
return uri;
},

newChannel: function( aURI )
{
throw Components.results.NS_ERROR_NOT_IMPLEMENTED

},

classDescription: "Foo custom protocol for Firefox",
contractID: "@mozilla.org/network/protocol;1?name="+"foo",
classID: Components.ID("{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"),
QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIProtocolHandler])


}
if( XPCOMUtils.generateNSGetFactory ){
var NSGetFactory = XPCOMUtils.generateNSGetFactory([Foo]);
}else{
var NSGetModule = XPCOMUtils.generateNSGetModule([Foo]);
}

ho letto centinaia di pagine tra mozilla dev e altre risorse senza trovare qualcosa di veramente utile :-/

grazie mille

[edit] ** ho preso spunto da questo tutorial: http://mike.kaply.com/2011/01/18/writing-a-firefox-protocol-handler/

0 Utenti e 1 Visitatore stanno visualizzando questo topic.