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 manejar vínculos “mailto”.

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 datos y debe estar en el mismo origen que la app que intenta registrar el protocolo. Una vez que el usuario apruebe el acceso, podrás usar este vínculo a través de tu app, otros sitios, etcétera:

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

Si haces clic en ese vínculo, se envía una solicitud de 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.

Vale la pena señalar que se implementó Firefox navigator.registerProtocolHandler desde FF3. Una diferencia en la implementación de Chrome tiene que ver con los protocolos personalizados. Estos deben tener el prefijo “web+”, como se muestra en el ejemplo anterior. Los siguientes protocolos no necesitan un prefijo “web+”: “mailto”, “mms”, “nntp”, “rtsp”, “webcal”.

Para obtener más información sobre esta API, consulta el artículo de MDN.