Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Adicionar Android App Links

Android App Links são URLs de HTTP que direcionam os usuários diretamente para um conteúdo específico no seu app Android. Os Android App Links podem direcionar mais tráfego para seu app, ajudar você a descobrir qual conteúdo é mais usado e facilitar o compartilhamento e a localização de conteúdo em um app instalado.

Para adicionar compatibilidade com Android App Links:

  1. Crie filtros de intent no seu manifesto.
  2. Adicione o código às atividades do seu app para lidar com links de entrada.
  3. Associe o app e o site a Digital Asset Links.

O App Links Assistant no Android Studio 2.3 e versões posteriores simplifica o processo em um assistente passo a passo, conforme descrito abaixo.

Para mais informações sobre como os links de apps funcionam e os benefícios que eles oferecem, leia Como processar Android App Links.

Adicionar filtros de intent

O App Links Assistant no Android Studio pode ajudar você a criar filtros de intent no manifesto e mapear URLs existentes do site para atividades no app. O App Links Assistant também adiciona o código Java do modelo em cada atividade correspondente para processar o intent.

Para adicionar filtros de intent e processamento de URL, siga estas etapas:

  1. Selecione Tools > App Links Assistant.
  2. Clique em Open URL Mapping Editor e, em seguida, clique em Add na parte inferior da lista de URL Mapping para adicionar um novo mapeamento de URL.
  3. Adicione detalhes para o novo mapeamento de URL:
    O App Links Assistant orienta você no mapeamento básico de URLs

    Figura 1. Adicione detalhes básicos sobre a estrutura de links do site para mapear URLs para atividades no app.

    1. Insira o URL do site no campo Host.
    2. Adicione um path, pathPrefix ou pathPattern para os URLs que você quer mapear. Por exemplo, se você tiver um app de compartilhamento de receitas, com todas as receitas disponíveis na mesma atividade, e as receitas do site correspondente estiverem todas no mesmo diretório /recipe, use pathPrefix e insira /recipe. Dessa forma, o URL http://www.recipe-app.com/recipe/grilled-potato-salad será mapeado para a atividade selecionada na etapa a seguir.
    3. Selecione a Activity (atividade) para a qual os URLs levarão os usuários.
    4. Clique em OK.
  4. O App Links Assistant adiciona filtros de intent com base no mapeamento de URL para o arquivo AndroidManifest.xml e o destaca no campo Preview. Se você quiser fazer alterações, clique em Open AndroidManifest.xml para editar o filtro de intent. Saiba mais sobre os filtros de intent no Android.

    Observação: para que mais links funcionem sem que o app seja atualizado, é preciso definir um mapeamento que seja compatível com URLs que serão adicionados no futuro. Além disso, lembre-se de incluir um URL na tela inicial do app para que ele seja incluído nos resultados da pesquisa.

  5. Para verificar se o mapeamento de URLs funciona corretamente, insira um URL no campo Check URL Mapping e clique em Check Mapping. Se estiver funcionando corretamente, a mensagem de êxito mostrará que o URL que você inseriu será mapeado para a atividade selecionada.

Gerenciar links de entrada

Depois de verificar se o mapeamento de URLs está funcionando corretamente, adicione uma lógica para processar o intent criado.

  1. Clique em Select Activity no App Links Assistant.
  2. Selecione uma atividade na lista e clique em Insert Code.

O App Links Assistant adiciona código ao arquivo Java da sua atividade, semelhante ao que se segue. Observe que, atualmente, o App Links Assistant não é compatível com Kotlin, portanto, será necessário adicionar esse código manualmente.

Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val appLinkIntent = intent
        val appLinkAction = appLinkIntent.action
        val appLinkData = appLinkIntent.data

    }
    

Java

    // ATTENTION: This was auto-generated to handle app links.
    Intent appLinkIntent = getIntent();
    String appLinkAction = appLinkIntent.getAction();
    Uri appLinkData = appLinkIntent.getData();
    

No entanto, esse código não está completo por si só. Agora, você precisa realizar uma ação com base no URI em appLinkData, como exibir o conteúdo correspondente. Por exemplo, para o app de compartilhamento de receitas, seu código pode se parecer com o exemplo a seguir:

Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ...
        handleIntent(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleIntent(intent)
    }

    private fun handleIntent(intent: Intent) {
        val appLinkAction = intent.action
        val appLinkData: Uri? = intent.data
        if (Intent.ACTION_VIEW == appLinkAction) {
            appLinkData?.lastPathSegment?.also { recipeId ->
                Uri.parse("content://com.recipe_app/recipe/")
                        .buildUpon()
                        .appendPath(recipeId)
                        .build().also { appData ->
                            showRecipe(appData)
                        }
            }
        }
    }
    

Java

    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      ...
      handleIntent(getIntent());
    }

    protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      handleIntent(intent);
    }

    private void handleIntent(Intent intent) {
        String appLinkAction = intent.getAction();
        Uri appLinkData = intent.getData();
        if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
            String recipeId = appLinkData.getLastPathSegment();
            Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
                .appendPath(recipeId).build();
            showRecipe(appData);
        }
    }
    

Associar o app ao site

Depois de configurar a compatibilidade de URLs para o app, o App Links Assistant gera um arquivo de Digital Asset Links que você pode usar para associar o site ao app.

Como alternativa ao uso do arquivo Digital Asset Links, você pode associar seu site e app no Search Console.

Para associar o app e o site usando o App Links Assistant, clique em Open Digital Asset Links File Generator no App Links Assistant e siga estas etapas:

O App Links Assistant orienta você no mapeamento básico de URLs

Figura 2. Insira detalhes sobre o site e o app para gerar um arquivo de Digital Asset Links.

  1. Informe o Site domain e o Application ID.
  2. Para incluir compatibilidade no arquivo Digital Asset Links do Smart Lock para senhas, selecione a opção Support sharing credentials between the app and the website e digite o URL de login do seu site. Isso adiciona a seguinte string ao arquivo Digital Asset Links, declarando que o app e o site compartilham credenciais de login: delegate_permission/common.get_login_creds. Saiba mais sobre como compatibilizar o Smart Lock para senhas no seu app.
  3. Especifique a configuração de assinatura ou selecione um arquivo de keystore. Você precisa selecionar o arquivo de configuração ou keystore apropriado para a compilação de versão final ou de depuração do app. Se você quiser configurar a compilação de produção, use a configuração da versão final. Se você quiser testar sua compilação, use a configuração de depuração.
  4. Clique em Generate Digital Asset Links file.
  5. Depois que o Android Studio gerar o arquivo, clique em Save file para fazer o download dele.
  6. Faça upload do arquivo assetlinks.json para seu site, com acesso de leitura para todos, em https://<yoursite>/.well-known/assetlinks.json.

    Importante: o sistema verifica o arquivo Digital Asset Links por meio do protocolo HTTPS criptografado. O arquivo assetlinks.json precisa ser acessível por meio de uma conexão HTTPS, independentemente de o filtro de intents do app incluir https.

  7. Clique em Link and Verify para confirmar que você fez upload do arquivo de Digital Asset Links correto para o local correspondente.

Saiba mais sobre como associar o site ao app por meio do arquivo Digital Asset Links em Declarar associações de sites.

Testar os links do app

Para verificar se os links abrem a atividade correta, siga estas etapas:

  1. Clique em Test App Links no App Links Assistant.
  2. Digite o URL que você quer testar no campo URL, por exemplo, http://recipe-app.com/recipe/grilled-potato-salad.
  3. Figura 3. O App Links Assistant exibe uma mensagem de êxito e abre o app no conteúdo especificado quando o URL que você está testando é mapeado para uma atividade no app.

  4. Clique em Run Test.
  5. Se o mapeamento de URL não estiver configurado corretamente ou não existir, será exibida uma mensagem de erro sob o URL na janela Test App Links. Se o mapeamento de URL existir, o Android Studio iniciará o app no dispositivo ou emulador na atividade especificada sem exibir a caixa de diálogo de desambiguação ("seletor" do app) e mostrará uma mensagem de êxito na janela do App Link Testing. Se o Android Studio não conseguir iniciar o app, uma mensagem de erro será exibida na janela Run do Android Studio.

Para testar o Android App Links por meio do App Links Assistant, você precisa ter um dispositivo conectado ou um dispositivo virtual disponível com o Android 6.0 (API de nível 23) ou versão posterior. Para mais informações, veja como conectar um dispositivo ou criar um AVD.

Adicionar indexação de apps do Firebase

Depois de adicionar os Android App Links ao seu app, você pode adicionar o código de indexação de apps do Firebase a uma atividade para conseguir um novo engajamento com o app a partir de outros recursos da Pesquisa Google, incluindo sugestões de preenchimento automático e pesquisa dentro de apps. Saiba mais na documentação de Indexação de apps do Firebase.

Para adicionar a indexação de apps do Firebase ao app, use o Firebase Assistente no Android Studio e expanda a seção App Indexing para ver instruções passo a passo.