Registra un controlador de protocolos personalizado

Chrome 13 finalmente incluye navigator.registerProtocolHandler. Esta API permite que las aplicaciones web se registren como posibles controladores para protocolos específicos. Por ejemplo, los usuarios pueden seleccionar tu aplicación para administrar "mailto" enlaces.

Registra un esquema de protocolo como el siguiente:

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

El primer parámetro es el protocolo. El segundo es el patrón de URL de la aplicación que debería controlar este esquema. El patrón debe incluir “%s” como marcador de posición para los datos, y debe estar en el mismo origen que la app que intenta registrar el protocolo. Una vez que el usuario aprueba el acceso, puedes usar este vínculo a través de tu app, otros sitios, etc.:

<a href="web+mystuff:some+data">Open in "My App"</a>

Si haces clic en ese vínculo, se envía una solicitud GET a http://example.com/rph?q=web%2Bmystuff%3A:some%20data. Por lo tanto, debes analizar el parámetro q y quitar manualmente los datos del protocolo.

Cabe destacar que Firefox implementó navigator.registerProtocolHandler desde FF3. Una diferencia en la implementación de Chrome son los protocolos personalizados. Deben tener el prefijo “web+”, como se ve en el ejemplo anterior. Los siguientes protocolos no necesitan un parámetro "web+" el prefijo “mailto”, “mms”, “nntp”, “rtsp” o “webcal”.

Puedes encontrar más información sobre esta API en el artículo de MDN.