Manipulando links de aplicativos Android
Quando um usuário clica em um link, ele tem apenas uma coisa em mente, quer ver o conteúdo que deseja.
Agora existem 3 tipos diferentes de links, link profundo e URL de esquema HTTP/HTTPS.
Um URL de link direto é algo em que você definiu alguns prefixos e esquemas em seu arquivo de manifesto do Android. E quando determinado esquema está presente em sua URL, ele abre o aplicativo.
Para saber mais sobre links diretos, confira meu artigo anterior sobre links diretos.
No Android 12, o Google fez alterações em como os links externos serão tratados pelo aplicativo.
A partir do Android 12 (API de nível 31), uma intenção da web genérica é resolvida como uma atividade em seu aplicativo somente se seu aplicativo for aprovado para o domínio específico contido nessa intenção da web. Se seu aplicativo não for aprovado para o domínio, a intenção da Web será resolvida para o aplicativo de navegador padrão do usuário
O que é intenção genérica da web?
No Android, existem dois tipos de intenções. Intenção implícita e explícita.
A intenção explícita acontece quando você sabe exatamente qual tela precisa ser aberta. Como qualquer atividade.
A intenção implícita, por outro lado, acontece quando o componente desejado não é conhecido ou quando o Android é solicitado a encontrar um aplicativo para lidar com uma solicitação. Como qualquer link da webhttps://goo.gl/maps/VafZAqoiitZHzvqH6.
Agora, se o seu URL tiver um esquema HTTP/HTTPS, ele também poderá ir para o seu navegador. Ou, se o seu aplicativo Android também lidar com esse URL, ele mostrará uma caixa de diálogo para perguntar aos usuários onde eles desejam abrir este navegador ou aplicativo de URL.
Mas por que alguém gostaria de ir para o navegador quando um aplicativo pode mostrar o conteúdo? Os usuários também podem selecionar sempre, mas isso é algo posterior. Inicialmente, queremos que o usuário entre diretamente no aplicativo se o aplicativo estiver presente.
vinculação de aplicativos
O esquema será definido conforme abaixo no Android Manifest para links da web:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="websitepath.com" />
</intent-filter>
Como tornar seu aplicativo a opção padrão para links de aplicativos?
Etapa 1: adicionar autoVerify= trueno manifesto do Android.
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="websitepath.com"
android:scheme="https" />
<data
android:host="websitepath.com"
android:scheme="http" />
</intent-filter>
Isso é feito criando um arquivo JSON de links de ativos.
Crie o arquivo assetlinks.json
- Crie um nome de arquivo vazio
assetlinks.json - Adicione o conteúdo abaixo se estiver lidando com um único aplicativo para o link
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "<Your App’s package name>",
"sha256_cert_fingerprints":
["<Your App’s SHA256 finger print>"]
}
}]
Clique em Gradle no android studio no canto superior direito, você verá seu pacote lá, vá para package -> Tasks -> android -> SigningReport . Você obterá a impressão digital SHA-256. Basta copiar e colar no arquivo .json.
Há mais uma opção para criar o arquivo assetLinks.json usando o Android Studio.
Você também pode gerar declaração aqui
Preencha todos os dados e clique em gerar Extrato. Ele irá gerar o conteúdo do arquivo assetLinks.json.
Use o Android Studio Asset link Assistant
O gerador de arquivos de links de ativos digitais abertos será gerado aqui da mesma maneira.
Etapa 3: faça upload do arquivo assetlinks.json para o host
Publique o arquivo assetlinks.json no URL abaixo
https://domain.name/.well-known/assetlinks.json
Certifique-se do seguinte:
- O
assetlinks.jsonarquivo é servido com content-typeapplication/json. - O
assetlinks.jsonarquivo deve ser 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. - O
assetlinks.jsonarquivo deve estar acessível sem redirecionamentos (sem redirecionamentos 301 ou 302). - Se os links do seu aplicativo oferecerem suporte a vários domínios de host, você deverá publicar o
assetlinks.jsonarquivo em cada domínio. Consulte Suporte à vinculação de aplicativos para vários hosts .
Agora você criou o arquivo e o carregou, mas como verificar se está correto?
Acesse a url abaixo
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://domainName&relation=delegate_permission/common.handle_all_urls
Substitua domainName pelo seu domínio. Se estiver assim na parte inferior, seu arquivo está correto.
Você também pode conferir aqui
Adicione todos os detalhes aqui e clique em Test Statment. Se o arquivo foi carregado com sucesso, ele retornará Success.
É isso. Agora, quando você acessar qualquer URL externamente, ele o levará diretamente ao aplicativo, em vez de mostrar um pop-up para escolher entre o navegador e o aplicativo.
Conclusão
- Utilize
android:autoVerify=”true”no manifesto do Android dentro de filtros de intenção que respondem a intenções com links HTTP. - Gere um arquivo de ativo digital assetlinks.json para criar um link entre o host e o aplicativo.
- Trabalhe com sua equipe de back-end para implantar o arquivo assetlinks.json no host.
Espero que este artigo tenha sido útil para você.
Se você tiver algum comentário ou dúvida, escreva-me de volta para [email protected]. Ou você pode me encontrar no meu Linkedin https://www.linkedin.com/in/karishma-agrawal-she-her-06966a126/
Suas palmas são muito apreciadas para ajudar outras pessoas a encontrar este artigo .





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)