Chrome 13 finalmente incluye navigator.registerProtocolHandler
. Esta API permite que las apps web se registren como posibles controladores de protocolos específicos. Por ejemplo, los usuarios podrían seleccionar tu aplicación para controlar los 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 debe controlar este esquema. El patrón debe incluir un "%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 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 enviará 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 los datos del protocolo de forma manual.
Cabe destacar que Firefox implementó navigator.registerProtocolHandler
desde FF3. Una diferencia en la implementación de Chrome se relaciona con los protocolos personalizados. Deben tener el prefijo "web+", como se ve en el ejemplo anterior. Los siguientes protocolos no necesitan un prefijo "web+": "mailto", "mms", "nntp", "rtsp" y "webcal".
Puedes encontrar más información sobre esta API en el artículo de MDN.