Actividades web de confianza de varios orígenes

Las Actividades web de confianza son una nueva forma de integrar el contenido de tu app web, como tu AWP, con tu app para Android con un protocolo basado en pestañas personalizadas.

navegación de ff-origin

Una actividad web de confianza necesita que los orígenes que se abran se validen con Vínculos de recursos digitales, para mostrar el contenido en pantalla completa.

Cuando un usuario navega fuera del origen validado, se muestra la IU de la pestaña personalizada. La barra de URL en la pestaña Personalizar La tecla Tab les indica a los usuarios que ahora están navegando en un dominio fuera de la aplicación y, al mismo tiempo, proporcionar al usuario un botón X que le permite volver rápidamente al origen validado

Pero también es común que las apps web creen experiencias que abarcan varios orígenes. sería una aplicación de compras con la experiencia principal en www.example.com, mientras que la confirmación de la compra se aloja en checkout.example.com.

En casos como ese, no se recomienda mostrar las pestañas personalizadas, no solo porque el usuario se encuentra en misma aplicación, sino también porque la barra superior podría hacer pensar al usuario que dejó la aplicación. y abandonan el proceso de pago.

Trusted Web Activities permite que los desarrolladores validen múltiples orígenes, y el usuario permanecerá en pantalla completa cuando navegue por esos orígenes. Al igual que con el dominio principal, el desarrollador debe ser ser capaz de controlar cada origen validado.

Configura la validación para varios orígenes

Al igual que en el origen principal, la validación se realiza con Vínculos de recursos digitales y cada dominio se validados deben tener su propio archivo assetlinks.json.

En nuestro ejemplo con www.example.com y checkout.example.com, tendríamos lo siguiente:

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

Como cada dominio se conecta a la misma aplicación para Android, los archivos assetlinks.json verse exactamente igual.

Si el nombre del paquete de la aplicación para Android es com.example.twa, ambos assetlink.json archivos contienen algo similar a lo siguiente:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

Agrega varios orígenes a la aplicación para Android

En la aplicación para Android, la declaración asset_statements debe actualizarse para que contenga todos los orígenes que deben validarse:

<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>

Cómo agregar orígenes adicionales a LauncherActivity

Cómo usar la LauncherActivity predeterminada

El LauncherActivity que forma parte de la biblioteca de compatibilidad android-browser-helper proporciona una forma de agregar varios orígenes que se validarán mediante la configuración del proyecto de Android.

Primero, agrega un elemento string-array al archivo res/values/strings.xml. Cada URL adicional que se validados estarán dentro de un subelemento item:

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

A continuación, agrega una nueva etiqueta meta-data dentro del elemento de actividad existente que hace referencia al LauncherActivity, dentro de 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>
...

Cómo usar una LauncherActivity personalizada

Cuando se usa código personalizado para iniciar una actividad web de confianza, se pueden agregar orígenes adicionales Llama a setAdditionalTrustedOrigins cuando se compila el intent para iniciar Trusted Web Activity:

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);
}

Conclusión

Con esos pasos, Trusted Web Activity ahora está lista para admitir varios orígenes. android-browser-helper tiene una aplicación de ejemplo para Trusted Web Activities de múltiples orígenes. Marca asegúrate de revisarlo.

Soluciona problemas

La configuración de Vínculos de recursos digitales tiene algunas partes móviles. Si la aplicación todavía muestra barra de pestañas personalizadas en la parte superior, es probable que haya algún problema con la configuración.

La guía de inicio rápido de Actividad web de confianza tiene una excelente sección de solución de problemas sobre cómo depurar problemas de Vínculos de recursos digitales.

También está disponible la increíble Herramienta de Vínculos de recursos digitales de Peter, que ayuda a depurar Vínculos de recursos digitales. en las aplicaciones instaladas en el dispositivo.