É possível iniciar apps diretamente de uma página da Web em um dispositivo Android com uma
Intent. É possível implementar um gesto do usuário para iniciar o app com um
esquema personalizado ou usar a sintaxe intent:
.
Crie uma âncora de intent e a incorpore a uma página para que o usuário possa iniciar o app. Isso permite flexibilidade para como e quando os apps são iniciados, o que significa que você pode transmitir informações para o app com os 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 alternativo. É possível especificar um URL substituto com um Intent extra:
S.browser_fallback_url=[encoded_full_url]
Use S.<name>
para definir extras de intent. Esse extra específico é
compatível com versões anteriores. O Chrome remove browser_fallback_url
para que o
app de destino não veja esse valor.
O Chrome não inicia um aplicativo externo nos seguintes casos:
- A intent 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
Confira uma intent que inicia o app de leitor de código de barras Zxing:
intent:
//scan/
#Intent;
package=com.google.zxing.client.android;
scheme=zxing;
end;
Para iniciar o app de leitura 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>
Consulte o manifesto do Android Zxing, que define o pacote e o host.
Quando um URL alternativo é especificado, o URL completo fica assim:
<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 envia os usuários para zxing.org
se o app não for encontrado, o link for
acionado pelo JavaScript sem gesto do usuário ou outros casos em que não
iniciamos um aplicativo externo.
Considerações
Se você invocar uma atividade Android com uma intent que contém extras, também será possível incluir esses detalhes.
Somente atividades com o filtro de categoria android.intent.category.BROWSABLE podem ser invocadas usando esse método, já que ele indica que é seguro abrir o aplicativo no navegador.
O Chrome não vai iniciar um app externo para um determinado URI de intent se:
- O URI da intent é redirecionado de um URL digitado;
- O URI da intent é iniciado sem gesto do usuário.