As atividades confiáveis na Web são uma nova maneira de integrar o conteúdo de apps da Web, como o PWA, seu app Android usando um protocolo baseado em guias personalizadas.
Uma Atividade na Web confiável precisa que as origens que estão sendo abertas sejam validadas usando Digital Asset Links, para mostrar o conteúdo em tela cheia.
Quando um usuário sai da origem validada, a interface da guia personalizada é mostrada. Na barra de URL A guia informa aos usuários que eles estão navegando em um domínio fora do aplicativo, além de fornecendo ao usuário um botão X que permite retornar rapidamente à origem validada.
Mas também é comum que aplicativos da Web criem experiências que abrangem várias origens - Um exemplo seria um aplicativo de compras com a experiência principal em www.example.com, enquanto o checkout o fluxo está hospedado em checkout.example.com.
Nesses casos, mostrar as guias personalizadas não é desejável, não apenas porque o usuário está no mas também porque a barra superior poderia fazer o usuário pensar que saiu do aplicativo e abandonar a finalização da compra.
As Atividades Confiáveis na Web permitem que os desenvolvedores validem várias origens, e o usuário permanece no em tela cheia ao navegar por essas origens. Assim como no domínio principal, o desenvolvedor deve ser possam controlar cada origem validada.
Como configurar a validação para várias origens
Como na origem principal, a validação é feita pelos Links de recursos digitais e cada domínio a ser validado precisa ter o próprio arquivo assetlinks.json.
Adicionar um arquivo assetlinks a cada origem
Em nosso exemplo com www.example.com e checkout.example.com, teríamos:
https://www.example.com/.well-known/assetlinks.json
https://checkout.example.com/.well-known/assetlinks.json
Como cada domínio está sendo conectado ao mesmo app Android, os arquivos assetlinks.json
são exatamente iguais.
Supondo que o nome do pacote para o aplicativo Android seja com.example.twa
, ambos assetlink.json
conteriam algo semelhante ao seguinte:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": ["..."]}
}]
Adicionar várias origens ao app Android
No app Android, a declaração asset_statements
precisa ser atualizada para conter todas as
origens que precisam ser validadas:
<string name="asset_statements">
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://www.example.com\"
}
}],
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://checkout.example.com\"
}
}],
</string>
Adicionar outras origens à LauncherActivity
Como usar a LauncherActivity padrão
O LauncherActivity
que faz parte da Biblioteca de Suporte android-browser-helper
.
oferece uma maneira de adicionar várias origens a serem validadas configurando o projeto Android.
Primeiro, adicione um elemento string-array
ao arquivo res/values/strings.xml
. Cada URL extra a ser
validado estará dentro de um subelemento item
:
...
<string-array name="additional_trusted_origins">
<item>https://www.google.com</item>
</string-array>
...
Em seguida, adicione uma nova tag meta-data
dentro do elemento da atividade existente que faz referência ao
LauncherActivity
, em AndroidManifest.xml
:
...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
android:label="@string/app_name">
<meta-data
android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
android:resource="@array/additional_trusted_origins" />
...
</activity>
...
Como usar uma LauncherActivity personalizada
Ao usar código personalizado para iniciar uma Atividade Confiável na Web, é possível adicionar origens extras
chame setAdditionalTrustedOrigins
ao criar a intent para iniciar a Atividade na Web confiável:
public void launcherWithMultipleOrigins(View view) {
List<String> origins = Arrays.asList(
"https://checkout.example.com/"
);
TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
.setAdditionalTrustedOrigins(origins);
new TwaLauncher(this).launch(builder, null, null);
}
Conclusão
Com essas etapas, a Atividade na Web Confiável agora está pronta para oferecer suporte a várias origens. O android-browser-helper tem um aplicativo de exemplo para atividades confiáveis na Web de várias origens. Marca verifique.
Solução de problemas
A configuração dos Links de recursos digitais tem algumas partes móveis. Se o aplicativo ainda estiver mostrando o Barra de guias personalizadas na parte superior, é provável que haja algo de errado com a configuração.
O Guia de início rápido da Atividade confiável na Web tem uma ótima seção de solução de problemas sobre como depurar problemas do Digital Asset Link.
Há também a incrível Peter's Asset Link Tool, que ajuda a depurar os Digital Asset Links nos aplicativos instalados no dispositivo.