Chrome 13 include finalmente navigator.registerProtocolHandler
. Questa API consente alle app web di registrarsi come possibili gestori per determinati protocolli. Ad esempio, gli utenti potrebbero selezionare la tua applicazione per gestire i link "mailto".
Registra uno schema di protocollo come:
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 avrà approvato l'accesso, potrai utilizzare questo link tramite 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
. Pertanto, devi analizzare il parametro q
ed estrarre manualmente i dati dal protocollo.
Vale la pena notare che Firefox ha implementato navigator.registerProtocolHandler
fin da FF3. Una differenza nell'implementazione di Chrome riguarda i protocolli personalizzati. Devono essere preceduti dal prefisso "web+", come nell'esempio riportato sopra. I seguenti protocolli non richiedono un prefisso "web+": "mailto", "mms", "nntp", "rtsp", "webcal".
Ulteriori informazioni su questa API sono disponibili nell'articolo su MDN.