aboutsummaryrefslogtreecommitdiff
path: root/files/pt-pt/manipuladores_de_protocolo_web/index.html
blob: 784696c1dc76f7591ca7ce06b9a5cb766644eea1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
title: Manipuladores de protocolo web
slug: Manipuladores_de_protocolo_web
tags:
  - Firefox 3
---
<p>{{ Fx_minversion_header(3) }} </p>
<h3 id="Vis.C3.A3o_geral" name="Vis.C3.A3o_geral"> Visão geral </h3>
<p>É comum encontrar páginas com links para recursos utilizando protocolos não-<code>http</code>. Um exemplo é o protocolo <code>mailto:</code>:
</p>
<pre>&lt;a href="mailto:webmaster@exemplo.com"&gt;Web Master&lt;/a&gt;
</pre>
<p>Autores podem usar um link <code>mailto:</code> 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 <i>baseado no desktop</i>.
</p><p>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 <code>mailto</code>.
</p>
<h3 id="Registrando" name="Registrando"> Registrando </h3>
<p>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 <code><a href="pt/DOM/window.navigator.registerProtocolHandler">registerProtocolHandler()</a></code> para registrar-se como manipulador em potencial para um determinado protocolo. Por exemplo:
</p>
<pre>navigator.registerProtocolHandler("mailto",
                                  "https://www.exemplo.com/?uri=%s",
                                  "Correio de Exemplo");
</pre>
<p>Onde os parâmetros são:
</p>
<ul><li> O protocolo;
</li><li> A URL do documento utilizado como manipulador; o "%s" será substituido pelo valor do atributo <code>href</code> do link e um GET será executado na URL resultante;
</li><li> O nome amigável do manipulador.
</li></ul>
<p>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:
</p><p><img alt="Image:mpw-notificacao.png">
</p><p>{{ Note() }}
</p>
<h4 id="Exemplo" name="Exemplo"> Exemplo </h4>
<pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;Exemplo de manipulador de protocolo - Registro&lt;/title&gt;
  &lt;script type="text/javascript"&gt;
    navigator.registerProtocolHandler("falso",
                                      "http://loremipsum.org/projetos/mpw.php?valor=%s",
                                      "Falso Mail");
  &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Exemplo de manipulador de protocolo&lt;/h1&gt;
  &lt;p&gt;Esta página instalará um manipulador de protocolos para o protocolo &lt;code&gt;falso:&lt;/code&gt;.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3 id="Ativando" name="Ativando"> Ativando </h3>
<p>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.
</p><p><img alt="Image:mpw-executar.png">
</p>
<h4 id="Exemplo_2" name="Exemplo_2"> Exemplo </h4>
<pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;Exemplo de manipulador de protocolo - Teste&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;p&gt;Ei, você já viu &lt;a href="falso:URL%20de%20exemplo"&gt;isso&lt;/a&gt; antes?&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3 id="Manipulando" name="Manipulando"> Manipulando </h3>
<p>A próxima fase é manipular a ação. O navegador extrai o valor do atributo <code>href</code> 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:
</p>
<pre>http://loremipsum.org/projetos/mpw.php?valor=falso:URL%20de%20exemplo
</pre>
<p>Programas no servidor podem extrair os parâmetros e executar a ação desejada.
</p><p>{{ Note("o valor <b>inteiro</b> do atributo <code>href</code> é passado ao programa do servidor. Isso significa que o programa no servidor deverá separar o protocolo dos dados.") }}
</p>
<h4 id="Exemplo_3" name="Exemplo_3"> Exemplo </h4>
<pre>&lt;?php
$value = "";
if ( isset ( $_GET["valor"] ) ) {
  $value = $_GET["valor"];
}
?&gt;

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Exemplo de manipulador de protocolo&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Exemplo de manipulador de protocolo - Manipulador&lt;/h1&gt;
  &lt;p&gt;Esta página é chamada ao manipular uma ação do protocolo &lt;code&gt;falso:&lt;/code&gt;. Dados enviados:&lt;/p&gt;
  &lt;textarea&gt;
&lt;?php echo(urldecode($valor)) ?&gt;
  &lt;/textarea&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><span class="comment">Categorias</span>
</p><p><span class="comment">Interwiki Language Links</span>
</p>{{ languages( { "en": "en/Web-based_protocol_handlers", "fr": "fr/Gestionnaires_de_protocoles_web", "ja": "ja/Web-based_protocol_handlers", "pl": "pl/Funkcje_obs\u0142ugi_protoko\u0142\u00f3w_przez_aplikacje_internetowe" } ) }}