Intents do Android com o Chrome

Você pode iniciar apps diretamente de uma página da Web em um dispositivo Android com uma Intent do Android. Você pode implementar um gesto do usuário para iniciar o app com um esquema personalizado ou use a sintaxe intent:.

Construir uma âncora de intent e incorporá-la a uma página, para que o usuário possa escolher iniciar o app. Isso permite flexibilidade de como e quando os aplicativos são iniciados, o que significa que você pode transmitir informações ao app com Intent Extras.

A sintaxe básica de um URI baseado em intent é a seguinte:

intent:  
   HOST/URI-path // Optional host  
   #Intent;  
      package=\[string\];  
      action=\[string\];  
      category=\[string\];  
      component=\[string\];  
      scheme=\[string\];  
   end;

Consulte o código-fonte do Android para analisar detalhes.

Quando uma intent não é resolvida ou um aplicativo externo não é iniciado, o usuário pode ser redirecionado para o URL de fallback. É possível especificar um URL alternativo com um Intent Extra:

S.browser_fallback_url=[encoded_full_url]

Use S.<name> para definir extras de intent. Esse extra em particular é são compatíveis com versões anteriores. O Chrome remove browser_fallback_url para que app de destino não vê esse valor.

O Chrome não inicia um aplicativo externo nos seguintes casos:

  • A intenção não pode ser resolvida. Em outras palavras, nenhum app pode processar a intent.
  • Um cronômetro JavaScript tentou abrir um aplicativo sem um gesto do usuário.

Exemplos

Aqui está um intent que inicia o aplicativo leitor de código de barras Zxing:

intent:  
   //scan/  
   #Intent;  
      package=com.google.zxing.client.android;  
      scheme=zxing;  
   end;

Para iniciar o app leitor de código de barras Zxing, codifique o href na âncora:

  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
    Take a QR code
  </a>

Veja o Manifesto do Android Zxing, que define o pacote e o host.

Quando um URL de fallback é especificado, o URL completo tem a seguinte aparência:

   <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
    Take a QR code
  </a>

Agora, o URL direcionará os usuários para zxing.org se o app não puder ser encontrado, o link será acionadas por JavaScript sem um gesto do usuário ou em outros casos em que não iniciar um aplicativo externo.

Considerações

Se você invocar uma atividade do Android com uma intent que contenha Extras, você também pode incluir esses detalhes.

Somente atividades com o filtro de categoria, android.intent.category.BROWSABLE pode ser invocado com esse método, já que indica que o aplicativo é seguro para abrir no navegador.

O Chrome não iniciará um app externo para um determinado URI de intent se:

  • O URI de intent é redirecionado de um URL digitado.
  • O URI da intent é iniciado sem um gesto do usuário.