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

Cuando se usa la actividad web de confianza en sus aplicaciones, es posible que los desarrolladores deban pasar información desde la parte nativa de la aplicación a la app web progresiva (AWP).

Un caso de uso común para esto es implementar segmentaciones de estadísticas personalizadas para medir las instalaciones y las sesiones iniciadas desde la Actividad web de confianza. Se pueden agregar parámetros de consulta 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 permanece igual entre los usuarios y los inicios, el parámetro se puede agregar directamente a la URL de inicio. Un ejemplo de este uso es cuando los desarrolladores desean medir la cantidad de sesiones de navegación creadas a partir de una actividad web de confianza.

Cómo usar el envoltorio de burbujas

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

Crea un proyecto nuevo

Cuando se usa la CLI de Burbblewrap, se inicializa un proyecto con el comando init y se crean valores predeterminados a partir de un manifiesto web, que se proporciona como parámetro:

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

El asistente usará la start_url del manifiesto web de forma predeterminada y les pedirá a los usuarios que confirmen el valor, lo que les dará a los desarrolladores la oportunidad de agregar parámetros adicionales a la URL utilizada para iniciar la app web progresiva.

Cómo mostrar el resultado de la CLI de burbujas

Modifica un proyecto existente

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

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

Luego, 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 LauncherActivity predeterminado, la startUrl se define como una metaetiqueta dentro del archivo AndroidManifest.xml, y podemos cambiar la URL que se usa para iniciar la actividad web de confianza modificándola:

<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 quieran crear parámetros que cambien entre los usuarios o las sesiones, por ejemplo. En la mayoría de los casos, esto implicará recopilar detalles del lado de Android de la aplicación para pasarlos a la app web progresiva.

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

El paso de información de la parte nativa a la parte web de una aplicación se puede lograr con parámetros de consulta. Cuando se agrega un parámetro a la cadena de consulta, las secuencias de comandos que se ejecutan en la página pueden acceder a él y también puede formar 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 tener en cuenta estas implicaciones y pueden mitigarlas con link rel=noreferrer o con la limpieza de la URL con la API de ubicación de páginas.

Actualmente, el protocolo de actividad web confiable 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 permiten la mayoría de los casos de uso que necesitan los desarrolladores. Si buscas APIs web nuevas o próximas, consulta la página de estado de las funciones nuevas.