Como abrir um aplicativo para Android a partir do navegador
Abrir um aplicativo instalado a partir de um navegador é frequentemente referido como “deep linking”, e com este guia você vai aprender como se conectar profundamente ao seu aplicativo para Android por si mesmo. Vamos focar exclusivamente em como acionar um aplicativo aberto a partir de uma página do site, em vez de a partir do clique de um link dentro de outros aplicativos. Para uma análise mais detalhada de todos os diferentes padrões de deep linking necessários para uma cobertura completa do Android, consulte a nossa série de deep linking para Android: Parte 1, Parte 2, Parte 3, e Parte 4.
Android é, de longe, uma das plataformas mais fragmentadas que os desenvolvedores já tiveram que gerenciar, devido à decisão do Google de forçar os fabricantes de dispositivos a serem responsáveis pela portabilidade do 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, somos deixados para pegar as peças. A ligação profunda no Android infelizmente não é diferente – ao longo dos anos, temos visto uma infinidade de requisitos técnicos que devem ser usados dependendo da circunstância e contexto do usuário.
Nota que a filial irá implementar toda essa complexidade para você, hospedar os links profundos, e até mesmo dar-lhe uma análise robusta atrás de cliques, abertura de aplicativos e eventos de funil para baixo. Você pode brincar com Branch links gratuitamente, inscrevendo-se aqui. Nós recomendamos fortemente o uso de nossas ferramentas em vez de tentar reconstruí-las do zero, uma vez que damos tudo de graça.
Overvisão das mudanças
Existem dois lugares onde as mudanças precisarão ser feitas para abrir com sucesso seu aplicativo Android: seu site e seu aplicativo Android. Você pode encontrar os detalhes de cada alteração nas seções correspondentes abaixo.
Adicionando suporte para esquemas URI ao seu aplicativo
Um esquema URI pode ser qualquer string sem caracteres especiais, como http, pinterest, fb ou myapp. Uma vez registrado, se você anexar :// ao final (ex. pinterest://) e clicar neste link, a aplicação Pinterest será aberta. Se o aplicativo Pinterest não estiver instalado, você verá um erro ‘Page Not Found’.
É simples configurar seu aplicativo para um esquema URI. Para começar, você precisa escolher uma Atividade dentro do seu aplicativo que você gostaria de abrir quando o esquema URI for acionado, e registrar um filtro de intenção para ele. Adicione o seguinte código dentro da tag <activity /> dentro do seu manifesto que corresponde à Activity que você quer abrir.
<intent-filter><data android:scheme="your_uri_scheme" /><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /></intent-filter>
Você pode mudar seu_uri_scheme para o esquema do URI que você gostaria. O ideal é que você queira que isto seja único. Se ele se sobrepõe ao esquema URI de outro aplicativo, o usuário verá um seletor Android ao clicar no link. Você verá isso frequentemente quando você tem vários navegadores instalados, como todos eles registram para o http URI.
Next, você vai querer confirmar que seu aplicativo foi aberto a partir do esquema URI. Para lidar com o link profundo no aplicativo, você simplesmente precisa pegar a string de dados de intenção na Atividade que foi aberta através do clique. Abaixo está um exemplo:
Uri data = this.getIntent().getData();if (data != null && data.isHierarchical()) {String uri = this.getIntent().getDataString();Log.i("MyApp", "Deep link clicked " + uri);}
A partir daqui, você precisará fazer análise de string para ler os valores anexados ao esquema URI que será muito específico para o seu caso de uso e implementação.
Adicionando Javascript ao seu site para abrir seu aplicativo
Agora que seu aplicativo Android esteja pronto para ser acionado a partir de um esquema URI, a próxima parte é simples. Você só precisa adicionar algum Javascript ao seu site que irá acionar automaticamente o seu aplicativo a ser aberto. A função abaixo, triggerAppOpen, tentará abrir o esquema URI do seu aplicativo assim que você substituir seu_uri_scheme pelo que você adicionou no manifesto acima.
var fallbackToStore = function() { window.location.replace('market://details?id=com.myapp.package');};var openApp = function() { window.location.replace('your_uri_scheme://');};var triggerAppOpen = function() { openApp(); setTimeout(fallbackToStore, 250);};
Você pode chamar triggerAppOpen em window.onload se você quiser fazê-lo no carregamento da página, ou você pode fazer com que ele seja o onclick de um link em algum lugar do seu site. Ou funciona e você terá os resultados pretendidos.
Android é incrivelmente complicado, e há casos de borda em todos os lugares. Você vai pensar que tudo está indo bem até você conseguir que um usuário reclamando que seus links não estão funcionando no Facebook enquanto rodando o Android 4.4.4. É por isso que você deve usar uma ferramenta como o Branch para salvar este pesadelo e garantir que seus links funcionem em todos os lugares. Certifique-se de solicitar uma demonstração Branch se você estiver interessado em aprender mais.