Chrome 13 include finalmente navigator.registerProtocolHandler
. Questa API consente alle app web di registrarsi come possibili gestori per determinati protocolli. Ad esempio, gli utenti possono 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 "%s" come segnaposto per i dati e deve trovarsi sulla stessa origine dell'app che tenta di registrare il protocollo. Dopo che l'utente avrà approvato l'accesso, potrai utilizzare questo link tramite l'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 Firefox ha implementato navigator.registerProtocolHandler
da FF3. Una differenza nell'implementazione di Chrome riguarda i protocolli personalizzati. Questi campi devono essere preceduti dal prefisso "web+", come mostrato nell'esempio sopra. I seguenti protocolli non hanno bisogno di un prefisso "web+": "mailto", "mms", "nntp", "rtsp", "webcal".
Per ulteriori informazioni su questa API, consulta l'articolo su MDN.