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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
page.title=Links de aplicativos
page.image=images/cards/card-app-linking_2x.png
page.keywords=applinking, deeplinks, intents
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Neste documento</h2>
<ol>
<li><a href="#web-assoc">Declarar uma associação de site</a></li>
<li><a href="#verfy-links">Solicitar verificação de link de aplicativo</a></li>
<li><a href="#user-manage">Gerenciar configurações de link de aplicativo</a></li>
</ol>
</div>
</div>
<p>
O sistema de intenções do Android é um mecanismo flexível para possibilitar que aplicativos lidem com conteúdos e solicitações.
Vários aplicativos podem declarar padrões de URI correspondentes em seus filtros de intenções. Quando um usuário clica em um
link da web que não tem um manipulador de inicialização padrão, a plataforma pode exibir um diálogo para
o usuário selecionar entre uma lista de aplicativos que declararam filtros de intenções correspondentes.
</p>
<p>
O Android M Developer Preview introduz suporte para links de aplicativos, que aprimora
a manipulação de links existentes, permitindo que desenvolvedores de aplicativos associem um aplicativo a um domínio da web pertencente a eles. Quando
os desenvolvedores criam esta associação, a plataforma pode automaticamente determinar o aplicativo padrão usado
para lidar com um link da web particular e ignorar a solicitação aos usuários.
</p>
<h2 id="web-assoc">Declarar uma associação de site</h2>
<p>
Os donos de sites da web devem declarar as associações aos aplicativos para estabelecer um link de aplicativo. O dono do site
declara a relação com um aplicativo hospedando um arquivo JSON chamado {@code statements.json} no
local bem conhecido no domínio:
</p>
<pre>http://<domain>:<optional port>/.well-known/statements.json</pre>
<p class="note">
<strong>Observação:</strong>
durante o período do M Developer Preview, o arquivo JSON é verificado por meio de protocolo http. Para
o lançamento oficial da plataforma, o arquivo é verificado com o protocolo http criptografado.
</p>
<p>
Este arquivo JSON indica o aplicativo do Android que deve ser usado como o manipulador padrão para URLs
neste domínio. Ele identifica o aplicativo com base nestes campos:
</p>
<ul>
<li>{@code package_name}: o nome do pacote declarado no manifesto do arquivo.</li>
<li>{@code sha256_cert_fingerprints}: a impressão digital SHA256 do certificado assinado do aplicativo.
É possível usar o Java Keytool para gerar a impressão digital usando o seguinte comando:
<pre>keytool -list -v -keystore my-release-key.keystore</pre>
</li>
</ul>
<p>
A seguinte lista de arquivos exibe um exemplo de conteúdo e formato
de um arquivo {@code statements.json}:
</p>
<pre>
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "<strong><package name></strong>",
"sha256_cert_fingerprints": ["<strong>6C:EC:C5:0E:34:AE....EB:0C:9B</strong>"]
}
}]
</pre>
<h2 id="verfy-links">Solicitar verificação de link de aplicativo</h2>
<p>
Um aplicativo pode solicitar que a plataforma verifique automaticamente quaisquer links de aplicativo relacionados aos arquivos {@code statements.json}
hospedados nos respectivos domínios da web que são definidos pelos nomes de host
nos elementos de dados dos seus filtros de intenções. Para solicitar a verificação de link de aplicativo, adicione um atributo {@code android:autoVerify}
a cada filtro de intenção desejado no manifesto, como exibido no seguinte fragmento
de código do manifesto:
</p>
<pre>
<activity ...>
<intent-filter <strong>android:autoVerify="true"</strong>>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="www.android.com" />
<data android:scheme="https" android:host="www.android.com" />
</intent-filter>
</activity>
</pre>
<p>
Quando o atributo {@code android:autoVerify} está presente em um manifesto do aplicativo, a plataforma
tenta verificar os links do aplicativo quando o aplicativo é instalado. Se a plataforma não conseguir
verificar os links do aplicativo, o aplicativo não será definido como o aplicativo preferencial para lidar com os links da web. Na próxima vez
que um usuário tentar abrir um dos links, a plataforma voltará a apresentar ao usuário
uma caixa de diálogo.
</p>
<p class="note">
<strong>Observação:</strong> no teste, há chances de ocorrer um falso positivo se a verificação
falhar, mas o usuário explicitamente permitiu que o aplicativo abrisse links sem solicitar, usando
o aplicativo do sistema Settings (Configurações). Neste caso, nenhum diálogo é exibido e o link vai direto para o
aplicativo, mas somente devido à configuração do usuário, e não porque a verificação foi bem-sucedida.
</p>
<h2 id="user-manage">Gerenciar configurações de link de aplicativo</h2>
<p>
Os usuários podem alterar as configurações de link de aplicativo para que os URLs sejam tratados da maneira que preferirem. É possível revisar e
gerenciar os links de aplicativo no aplicativo Settings (Configurações) do sistema, em <strong>Settings (Configurações) > Apps (Aplicativos) > App Info (Informações do aplicativo) >
Open by default (Abrir por padrão)</strong>.
</p>
|