Os seus resultados da pesquisa

    Manipuladores de protocolo web

    Visão geral

    É comum encontrar páginas com links para recursos utilizando protocolos não-http. Um exemplo é o protocolo mailto::

    <a href="mailto:webmaster@exemplo.com">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:

    Image:mpw-notificacao.png

    Note: 

    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",
                                          "http://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.

    Image:mpw-executar.png

    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:

    http://loremipsum.org/projetos/mpw.php?valor=falso:URL%20de%20exemplo
    

    Programas no servidor podem extrair os parâmetros e executar a ação desejada.

    Note: o valor inteiro do atributo 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

    Etiquetas do documento e colaboradores

    Etiquetas:
    Colaboradores para esta página: Verruckt, Fernandopsilveira, Leandro Mercês Xavier
    Última atualização por: Verruckt,