Como registrar um gerenciador de protocolo personalizado

O Chrome 13 finalmente inclui navigator.registerProtocolHandler. Essa API permite que aplicativos da web se registrem como possíveis manipuladores para protocolos específicos. Por exemplo, os usuários podem selecionar seu aplicativo para lidar com "mailto" links.

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 de URL do aplicativo que deve processar esse esquema. O padrão deve incluir um "%s" como um marcador de posição de 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 esse link por meio do seu aplicativo, de 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, é necessário analisar o parâmetro q e remover manualmente os dados do protocolo.

Vale ressaltar que o navigator.registerProtocolHandler foi implementado no Firefox desde o FF3. Uma diferença na implementação do Chrome está relacionada aos protocolos personalizados. Eles precisam ser prefixados com "web+", como visto no exemplo acima. Os protocolos a seguir não precisam de um "web+" prefixo: "mailto", "mms", "nntp", "rtsp", "webcal".

Mais informações sobre essa API podem ser encontradas no artigo do MDN.