O Chrome 13 finalmente inclui navigator.registerProtocolHandler
. Essa API permite que os apps da Web se registrem como possíveis manipuladores para protocolos específicos. Por exemplo, os usuários podem selecionar o seu aplicativo para lidar com links "mailto".
Registre um esquema de protocolo como:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
O primeiro parâmetro é o protocolo. O segundo é o padrão do URL do aplicativo que deve processar esse esquema. O padrão precisa incluir "%s" como marcador de posição para os dados e precisa estar na mesma origem que o app que está tentando registrar o protocolo. Depois que o usuário aprovar o acesso, você poderá usar essa vinculação no seu app, em outros sites etc.:
<a href="web+mystuff:some+data">Open in "My App"</a>
Clicar nesse link faz uma solicitação GET
para http://example.com/rph?q=web%2Bmystuff%3A:some%20data
. Portanto, você precisa analisar o parâmetro q
e remover manualmente os dados do protocolo.
Vale a pena ressaltar que o navigator.registerProtocolHandler
foi implementado desde o FF3. Uma diferença na implementação do Chrome está relacionada aos protocolos personalizados. Eles precisam ter o prefixo "web+", como mostrado no exemplo acima. Os protocolos a seguir não precisam de um prefixo "web+": "mailto", "mms", "nntp", "rtsp", "webcal".
Saiba mais sobre essa API no artigo da MDN.