Como abrir um aplicativo de Android a partir do navegador

Johanna Lazar

maio 3, 2022

Abrir um aplicativo instalado a partir de um navegador é uma prática conhecida como “deep linking” e, com este guia, você aprenderá como criar um deep link para seu aplicativo de Android a no seu site mobile. Vamos falar exclusivamente em como abrir um aplicativo a partir de uma página do site, não abordando cliques em links dentro de outros aplicativos. 

O Android é, de longe, uma das plataformas mais fragmentadas com que desenvolvedores já tiveram que lidar. Isso graças à decisão do Google de forçar os fabricantes de dispositivos a serem responsáveis por portar o sistema operacional, o que requer compatibilidade com versões anteriores e suporte a uma infinidade de dispositivos. Neste ecossistema, nós, os desenvolvedores de aplicativos, temos que juntar as peças. Infelizmente, inserir deep links no Android não é diferente — ao longo dos anos, observamos uma infinidade de requisitos técnicos que devem ser usados dependendo das circunstâncias e do contexto do usuário.

Observe que a Branch implementará toda essa complexidade para você, hospedará os deep links e retornará com analytics robustos por trás de cliques, aberturas de aplicativos e eventos de fundo de funil. Você pode interagir com os links da Branch gratuitamente, cadastrando-se aqui. É altamente recomendável usar nossas ferramentas em vez de tentar reconstruí-las do zero, já que desenvolver deep links é algo extremamente complicado. 

Visão geral dos App Links para Android

App Links para Android são a solução do Android para levar os usuários a conteúdos específicos dentro do aplicativo. Eles permitem que os usuários pulem a caixa de diálogo de desambiguação em que selecionam se preferem ver o conteúdo no site mobile ou no aplicativo, como na imagem a seguir:

Os App Links usam URLs HTTP associadas ao domínio do seu site e permitem que um aplicativo específico seja o proprietário padrão de um determinado tipo de link. Isso garante que nenhum outro aplicativo possa usar os seus links para inserir deep links. Observe que, com os App Links, os usuários que ainda não possuem seu aplicativo instalado serão direcionados ao seu site mobile. Portanto, para extrair o máximo da experiência de usuário, configure seu site mobile para o App Link, evitando, assim, que os usuários caiam em uma página 404.

Etapas para criar App Links para Android:

1. Crie filtros de intenção para links e defina valores em seu manifesto

Para criar um link para um conteúdo do aplicativo, crie um filtro de intenção com os seguintes elementos e valores de atributo a serem usados na tag Activity no manifesto:  

  • <action>: Para especificar a intenção de ação VIEW para que o filtro de intenção possa ser acessado no Google Search.
  • <data>: A tag <data> deve incluir o atributo android:scheme. As data tags representam um formato de URI que resolve para a atividade.
  • Categoria BROWSABLE: Necessária para que o filtro de intenção seja acessível a partir de um navegador. Sem ela, clicar em um link no navegador não direcionará os usuários para o seu aplicativo. 
  • Categoria DEFAULT: Para permitir que seu aplicativo responda à intenções implícitas. 

Eis um exemplo de um filtro de intenção dentro de um manifesto para direcionamento por deep link usando o URI “https://www.example.com/gizmos” : 

<intent-filter android:label="@string/filter_view_http_gizmos">
 <action android:name="android.intent.action.VIEW" />
 <category android:name="android.intent.category.DEFAULT" />
 <category android:name="android.intent.category.BROWSABLE" />
 <!-- Aceita URIs que começam com "http://www.example.com/gizmos” -->
 <data android:scheme="https"
 android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- observe que o "/" inicial é obrigatório para pathPrefix-->
    </intent-filter>

Observe que você pode usar http, mas precisa adicionar o arquivo XML de configuração de rede com ClearTextTrafficPermitted=true. Obtenha mais informações aqui

Adicionar filtros de intenção com URIs para conteúdo de atividade ao manifesto do aplicativo permite que o Android encaminhe para o seu aplicativo qualquer intenção que tenha URIs correspondentes.

Branch Webinar
Turbine suas campanhas de afiliados 🚀
             

Faça aqui o download de “Secrets to Unlocking the App for Affiliate"

Baixe agora

2. Leia dados de intenções recebidas

Use dados de sua intenção para determinar o conteúdo a ser exibido aos usuários. Acione os métodos getData() e getAction() para recuperar os dados e a ação associados à intenção recebida. 

Eis um trecho do código mostrando como recuperar dados de uma intenção em Java:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();
}

3. Verifique a propriedade do aplicativo e do site 

É preciso verificar a propriedade do aplicativo e do site para direcionar por deep link os usuários ao conteúdo do aplicativo. Siga estas etapas:

Solicite a verificação automática do app link em seu manifesto. 

Isso solicitará que o sistema Android verifique se seu aplicativo pertence ao domínio de URL usado nos filtros de intenção.

Defina android:autoVerify=" true" em qualquer um dos filtros de intenção de URL do site no manifesto do aplicativo que incluam a ação de intentenção android.intent.action.VIEW e a categoria de intenção android.intent.category.BROWSABLE.

Declare a relação entre seu site e seus filtros de intenção 

Para indicar os aplicativos de Android associados às suas intenções de URL de website e aplicativos, comece pela publicação de um arquivo JSON do Digital Asset Links em https://domain.name/.well-known/assetlinks.json.

Você precisará das seguintes informações para publicar o arquivo JSON do Digital Asset Links: 

  • package_name: O ID do aplicativo declarado no arquivo build.gradle do aplicativo.
  • sha256_cert_fingerprints: As impressões digitais SHA256 do certificado de assinatura do seu aplicativo. Você pode usar o comando a seguir para gerar a impressão digital por meio do keytool do Java:

$ keytool -list -v -keystore my-release-key.keystore

Certifique-se de que seu arquivo assetlinks.json seja:

  • servido com o tipo de conteúdo aplicativo/json.
  • acessível por meio de uma conexão HTTPS, independentemente de os filtros de intenção do seu aplicativo declararem HTTPS como o esquema de dados.
  • acessível sem nenhum redirecionamento (sem redirecionamentos 301 ou 302) e acessível por bots (seu robots.txt deve permitir rastreamento de /.well-known/assetlinks.json).
  • publicado em cada domínio se os links do seu aplicativo forem compatíveis com vários domínios host

Por fim, confirme se o arquivo JSON do Digital Asset Links está devidamente hospedado e definido, usando a API Digital Asset Links.

4. Teste de Intenções de URL

Depois de verificar os sites associados ao seu aplicativo e garantir que o arquivo JSON hospedado seja válido, instale o aplicativo no seu dispositivo. Aguarde pelo menos 20 segundos para que o processo de verificação assíncrona seja concluído. Use o comando a seguir para verificar se o sistema verificou seu aplicativo e definiu as políticas de tratamento de links corretas:

adb shell am start -a android.intent.action.VIEW 
    -c android.intent.category.BROWSABLE 
    -d "http://domain.name:optional_port"

Você também pode examinar uma lista dos links associados a todos os seus aplicativos com o seguinte comando: 

adb shell dumpsys package domain-preferred-apps

Prontinho! Resumindo, a inserção de deep links no Android é incrivelmente complicada e há casos de exceções por todo lado. Você pensará que tudo está indo bem até encontrar casos dde exceções únicos e links quebrados. É por isso que você deve usar uma ferramenta como a Branch – para tirar você desse pesadelo e garantir que seus links funcionem em todos os lugares. Entre em contato conosco para descobrir como implementar deep links que transformam a experiência do usuário, reduzem o abandono e aumentam o ROI.

Get the latest mobile knowledge

To help you fuel cross-channel and cross-platform mobile growth, our team works hard to deliver the most current, relevant resources.

Cadastro realizado! 🚀