links Aspecto prático : conteúdo da aplicação Web está espelhado dentro da aplicação mobile e pode ser endereçado da mesma Objetivo principal : re-engajamento do usuário Outras possibilidades em função de links que apenas só a sua aplicação responda (exemplo : verificação de usuário)
dois" formatos de links : URIs e URLs Toda URL é uma URI Nem toda URI é uma URL (RFC 3986) Exemplo de URL válida : https://user.content.com/images Exemplo de URI válida : content://user/images
determinada tela da sua aplicação (Activity) deve responder 2 Adicione um IntentFilter para cada variante desse link como atributo de resolução implícita no AndroidManifest 4 Aplique lógica adequada partir desses dados 3 Intercepte os dados de interesse a partir do Intent de entrada
/> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="dribbble.com" android:pathPrefix="/shots" /> </intent-filter> </activity> // Etapas I e II : interceptando um link do Dribbble // AndroidManifest.xml
de anotações Adota estratégia de Activity de roteamento (DeepLinkActivity) Suporte a múltiplos URI esquemas e múltiplos links por tela, padrão de launchIntents e mais https://github.com/airbnb/DeepLinkDispatch
aplicação Sua aplicação (re) faz inicializações cross-app de forma desacoplada da UI? Como fica o backstack após o deeplinking? Você é sempre capaz de rotear para uma tela e oferecer bom suporte a Up Navigation? Suas URLs são bem desenhadas e passíveis de parsing? Todo o conteúdo da tela é acessível via dados da URL + WS ? E se não for, como fazer?
ao buscador do Google Principais benefícios : Resultados indexados localmente disponíveis via auto-completar na busca do Google Re-engajamento de usuários via integração com resultados de busca do Google, incluindo integrações adicionais (eg AppInstalls)
deve indicar ao Google Crawler quais links são endereçáveis na aplicação móvel Aplicação móvel deve responder aos links determinados como indexáveis, associando o ciclo de vida da tela com o ciclo de visualização do conteúdo
na web e que está associada à aplicação tem o deeplink implementado 2 Obtenha uma instância do cliente GMS (GoogleAPIClient) 3 Usando a API de AppIndexing, vincule o ciclo de visualização de um conteúdo no aplicativo ao link correspondente para cada deeplink
partir do Android Marshmallow Menor fricção entre links da Web e experiência nativa com a remoção do ChooserDialog Deeplinks ainda precisam ser tratados manualmente dentro da aplicação Representa uma tendência para adotar o esquema HTTP como padrão na mecânica de deeplinking
web server ou por falha de conectividade Resultado respeita mecanismo de HTTP Caching (max-age, etags, etc), apenas para status 200 JSON de validação deve ser acessível de ambos os hostnames Novas verificações a princípio serão realizadas apenas mediante updates ou re-instalações da aplicação
instalação bem sucedida da aplicação Fundamental para entender em quais canais vale a pena investir por crescimento não-orgânico Normalmente melhor implementado por ferramentas dedicadas, que oferecem garantia de procedêndia dos dados de atribuição Em geral integrado em ferramentas de Analytics (redundância)
Usuário quer o mesmo conteúdo, independente de plataforma Integrações com links diminuem a fricção e melhoram a experiência do usuário como um todo Deeplinking e AppIndexing ajudam no re-engajamento de usuários