Registrazione di un gestore di protocollo personalizzato

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.