Visão geral
É comum encontrar páginas com links para recursos utilizando protocolos não-http
. Um exemplo é o protocolo mailto:
:
<a href="mailto:[email protected]">Web Master</a>
Autores podem usar um link mailto:
quando desejam fornecer uma maneira conveniente de enviar mensagens diretamente da página. Quando o link é ativado, o navegador deve lançar a aplicação padrão do sistema para manipular emails. Você pode pensar nisso como um manipulador de protocolos baseado no desktop.
Manipuladores de protocolos baseados na web permitem que aplicações web também participem desse processo. Isso tem-se tornado mais importante à medida em que mais e mais tipos de aplicações tem migrado para a web. Na verdade, existem várias aplicações que manipulam mensagens baseadas na web que poderiam processar os links mailto
.
Registrando
Registrar uma aplicação web como manipulador de protocolos não é um processo difícil. Basicamente, a aplicação web deve utilizar o o método registerProtocolHandler()
para registrar-se como manipulador em potencial para um determinado protocolo. Por exemplo:
navigator.registerProtocolHandler("mailto", "https://www.exemplo.com/?uri=%s", "Correio de Exemplo");
Onde os parâmetros são:
- O protocolo;
- A URL do documento utilizado como manipulador; o "%s" será substituido pelo valor do atributo
href
do link e um GET será executado na URL resultante; - O nome amigável do manipulador.
Quando um navegador executa esse código, ele deve pedir permissão ao usuário para registrar a aplicação como manipulador do protocolo. O Firefox exibe um prompt na barra de notificação:
Exemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>Exemplo de manipulador de protocolo - Registro</title> <script type="text/javascript"> navigator.registerProtocolHandler("falso", "https://loremipsum.org/projetos/mpw.php?valor=%s", "Falso Mail"); </script> </head> <body> <h1>Exemplo de manipulador de protocolo</h1> <p>Esta página instalará um manipulador de protocolos para o protocolo <code>falso:</code>.</p> </body> </html>
Ativando
Agora, sempre que o usuário ativar um link que utiliza o protocolo registrado, o navegador direcionará a ação para a URL fornecida pela aplicação registrada. O Firefox irá, por padrão, perguntar ao usuário antes de executar a ação.
Exemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>Exemplo de manipulador de protocolo - Teste</title> </head> <body> <p>Ei, você já viu <a href="falso:URL%20de%20exemplo">isso</a> antes?</p> </body> </html>
Manipulando
A próxima fase é manipular a ação. O navegador extrai o valor do atributo href
do link ativado, combina esse valor com a URL fornecida pelo manipulador durante o registro e executa um HTTP GET na URL. Assim, usando os exemplos acima, o navegador executaria um GET na seguinte URL:
https://loremipsum.org/projetos/mpw.php?valor=falso:URL%20de%20exemplo
Programas no servidor podem extrair os parâmetros e executar a ação desejada.
href
é passado ao programa do servidor. Isso significa que o programa no servidor deverá separar o protocolo dos dados.Exemplo
<?php $value = ""; if ( isset ( $_GET["valor"] ) ) { $value = $_GET["valor"]; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>Exemplo de manipulador de protocolo</title> </head> <body> <h1>Exemplo de manipulador de protocolo - Manipulador</h1> <p>Esta página é chamada ao manipular uma ação do protocolo <code>falso:</code>. Dados enviados:</p> <textarea> <?php echo(urldecode($valor)) ?> </textarea> </body> </html>
Categorias
Interwiki Language Links