Cómo pasar información a una actividad web de confianza con parámetros de consulta

Al usar la Actividad web de confianza en sus aplicaciones, es posible que los desarrolladores necesiten pasar información de la parte nativa de la aplicación en la app web progresiva (AWP).

Un caso de uso común para esto es implementar segmentaciones estadísticas personalizadas para medir las instalaciones y las sesiones iniciadas desde Trusted Web Activity. Los parámetros de consulta se pueden agregar a la URL de inicio para implementar esto.

Cómo modificar la URL de inicio

Si el parámetro que se pasa a la AWP se mantendrá igual en todos los usuarios se inicia, el parámetro se puede agregar directamente a la URL de inicio. Un ejemplo de este uso es cuando los desarrolladores quieren medir la cantidad de sesiones de navegación creadas desde un sitio web Actividad.

Cómo usar Bubblewrap

Bubblewrap es una herramienta creada para ayudar a los desarrolladores a crear un proyecto para un Aplicación para Android que inicia una AWP existente mediante una Web de confianza Actividad. Contiene una biblioteca y una interfaz de línea de comandos (CLI).

Crea un proyecto nuevo

Cuando se usa la CLI de Bubblewrap, el proyecto se inicializa con el comando init y se crea valores predeterminados de un manifiesto web, proporcionados como parámetro:

bubblewrap init --manifest https://material.money/manifest.json

El asistente utilizará start_url del manifiesto web de forma predeterminada y les pedirá a los usuarios que confirmen el valor, lo que les da a los desarrolladores la oportunidad de agregar parámetros adicionales a la URL que se usa para iniciar la App web progresiva

Cómo mostrar el resultado de la CLI de Bubblewrap

Cómo modificar un proyecto existente

Cuando Bubblewrap genera un proyecto, la información de ese proyecto en particular se almacena en un archivo. llamada twa-manifest.json, en la carpeta del proyecto. Para modificar la URL de inicio de un proyecto existente, sigue estos pasos: los desarrolladores deben modificar el archivo:

{
  ...
  "startUrl": "/?utm_source=trusted-web-activity",
  ...
}

A continuación, vuelve a generar los archivos del proyecto y aplica la nueva URL de inicio.

bubblewrap update

Uso de Android Studio

Cuando se usa Android Studio y la LauncherActivity predeterminada, la startUrl se define como una metaetiqueta dentro de AndroidManifest.xml, y podemos cambiar la URL que se usa para iniciar Trusted Web Activity. modificarlo:

<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">
    ...
    <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
        android:value="https://svgomg.firebaseapp.com/?utm_source=trusted-web-activity" />
    ...
</activity>

Cómo modificar la URL de inicio de forma dinámica

En otros casos, es posible que los desarrolladores deseen crear parámetros que cambien entre los usuarios o las sesiones, para instancia. En la mayoría de los casos, esto implicará recopilar detalles del lado de Android del para pasarla a la Progressive Web App.

Paso 1: Crea una LauncherActivity personalizada

public class CustomQueryStringLauncherActivity extends LauncherActivity {
    private String getDynamicParameterValue() {
        return String.valueOf((int)(Math.random() * 1000));
    }

    @Override
    protected Uri getLaunchingUrl() {
        // Get the original launch Url.
        Uri uri = super.getLaunchingUrl();

        // Get the value we want to use for the parameter value
        String customParameterValue = getDynamicParameterValue();

        // Append the extra parameter to the launch Url
        return uri
                .buildUpon()
                .appendQueryParameter("my_parameter", customParameterValue)
                .build();
    }
}

Paso 2: Modifica AndroidManifest.xml para usar la LauncherActivity personalizada

<activity android:name="com.myapp.CustomQueryStringLauncherActivity"
    android:label="@string/app_name">
    ...
    <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
        android:value="https://squoosh.app/?utm_source=trusted-web-activity" />
    ...
</activity>

Conclusión

Se puede pasar información de la parte nativa a la web de una aplicación usando parámetros de consulta. Cuando se agrega un parámetro a la cadena de consulta, las secuencias de comandos podrán acceder a él que se publican en la página y también pueden ser parte de la referencia cuando los usuarios navegan a una página diferente o el desarrollador implementa una acción de compartir.

Los desarrolladores deben estar al tanto de esas implicaciones y pueden mitigarlas con link rel=noreferrer o limpiando la URL con la API de ubicación de la página.

Actualmente, el protocolo de Actividad web de confianza no proporciona un mecanismo para intercambiar mensajes con la parte nativa de la aplicación después de que se invoca la parte web.

Creemos que las APIs de plataforma web existentes o futuras son útiles para la mayoría de los casos de uso que necesitan los desarrolladores. Si Si buscas APIs web nuevas o próximas, consulta la página de estado de Funciones nuevas.