Registrazione di un gestore di protocollo personalizzato

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.