Deep Linking
Definição
Deep Linking é uma técnica que permite abrir telas específicas de um aplicativo diretamente a partir de links externos, como URLs em navegadores, e-mails, QR Codes ou notificações.
Ao invés de apenas abrir o app na tela inicial, um deep link leva o usuário diretamente para um conteúdo ou funcionalidade interna, como a página de um produto, artigo ou perfil.
Exemplo: ao clicar em https://meusite.com/produto/123
, o app pode abrir diretamente a tela do produto com ID 123
, caso esteja configurado para isso.
Tipos de Deep Link
- Deep Link Tradicional (URI-based): utiliza esquemas personalizados, como
meuapp://detalhes/42
. Funciona apenas se o app estiver instalado. - App Links (Android) / Universal Links (iOS): URLs HTTP/HTTPS associadas ao domínio da empresa. Funcionam mesmo fora do app e são redirecionadas automaticamente, se possível.
- Deferred Deep Linking: links que funcionam mesmo que o app ainda não esteja instalado. Após a instalação, o conteúdo correto ainda é exibido (usado com plataformas externas como Firebase Dynamic Links ou Branch.io).
Objetivos do Deep Linking
- Melhorar a experiência do usuário ao eliminar etapas intermediárias.
- Facilitar o compartilhamento de conteúdos internos, como produtos, mensagens ou artigos.
- Aumentar a eficácia de campanhas de marketing, levando o usuário diretamente ao destino.
- Integrar com notificações push, e-mails e sistemas externos de forma contextual.
Exemplo prático (Android — Java)
No Android, o suporte a deep links exige o uso de uma intent-filter
no AndroidManifest.xml
, especificando quais URLs o app pode tratar:
<activity android:name=".DetalhesActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="meusite.com"
android:pathPrefix="/produto" />
</intent-filter>
</activity>
Isso permite que URLs como https://meusite.com/produto/123
sejam abertas diretamente no app, se instalado.
No código da Activity
, é possível capturar e tratar o link:
Uri dados = getIntent().getData();
if (dados != null) {
String caminho = dados.getPath(); // exemplo: /produto/123
// A partir daqui, você pode extrair o ID e carregar o conteúdo correspondente
}
Boas práticas
- Configure corretamente os arquivos de verificação de domínio:
assetlinks.json
(Android)apple-app-site-association
(iOS)
- Trate parâmetros inválidos ou ausentes com mensagens claras e funcionais.
- Evite criar URLs ambíguas ou sobrepostas entre diferentes telas.
- Teste o comportamento dos links em múltiplos contextos:
- App instalado
- App em segundo plano
- App não instalado
- Combine deep links com notificações, QR Codes e e-mails para fluxos completos e fluídos.
O ciclo do deep link
[Usuário clica em um link externo]
--> O sistema verifica se o app pode lidar com a URL
--> Se sim: o app é aberto diretamente na tela correspondente
--> Se não: a URL é aberta no navegador ou redireciona para a loja de apps