Como registrar um gerenciador de protocolo personalizado

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.