Chrome 13 include infine navigator.registerProtocolHandler
. Questa API consente alle app web di registrarsi come possibili gestori di determinati protocolli. Ad esempio, gli utenti possono selezionare la tua applicazione per gestire il protocollo "mailto". .
Registra uno schema di protocollo come il seguente:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Il primo parametro è il protocollo. Il secondo è il pattern URL dell'applicazione che deve gestire questo schema. Il pattern deve includere un "%s" come segnaposto per i dati e deve trovarsi nella stessa origine dell'app che tenta di registrare il protocollo. Una volta che l'utente approva l'accesso, puoi utilizzare questo link attraverso la tua app, altri siti e così via:
<a href="web+mystuff:some+data">Open in "My App"</a>
Se fai clic sul link, viene inviata una richiesta GET
a http://example.com/rph?q=web%2Bmystuff%3A:some%20data
. Di conseguenza, devi analizzare il parametro q
ed eliminare manualmente i dati dal protocollo.
Vale la pena notare che a partire da FF3 è stato implementato navigator.registerProtocolHandler
in Firefox. Una differenza nell'implementazione di Chrome riguarda i protocolli personalizzati. Questi valori devono essere preceduti dal prefisso "web+", come mostrato nell'esempio precedente. I seguenti protocolli non hanno bisogno di un "Web+" prefisso: "mailto", "mms", "nntp", "rtsp", "webcal".
Per ulteriori informazioni su questa API, consulta l'articolo su MDN.