Transmission d'informations à une activité Web fiable à l'aide de paramètres de requête

Lorsqu'ils utilisent l'activité Web fiable dans leurs applications, les développeurs peuvent avoir besoin de transmettre des informations la partie native de l'application dans la progressive web app (PWA).

Un cas d'utilisation courant consiste à implémenter des segmentations d'analyse personnalisées pour mesurer les installations. et les sessions démarrées à partir de l'activité Web de confiance. Des paramètres de requête peuvent être ajoutés à l'URL de lancement pour l'implémenter.

Modifier l'URL de démarrage

Si le paramètre transmis à la PWA reste le même pour tous les utilisateurs et lancements, le paramètre peut être ajouté directement à l'URL de lancement. Voici un exemple de cette utilisation : lorsque les développeurs souhaitent mesurer le nombre de sessions de navigation créées à partir d'un site Activité.

Utiliser Bubble wrap

Bubblewrap est un outil conçu pour aider les développeurs à créer un projet pour un Application Android qui lance une PWA existante à l'aide d'un site Web de confiance Activité. Il contient à la fois une bibliothèque et une interface de ligne de commande (CLI).

Créer un projet

Lorsque vous utilisez la CLI Bubblewrap, un projet est initialisé à l'aide de la commande init et crée Valeurs par défaut d'un fichier manifeste Web, fournies sous forme de paramètre:

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

L'assistant utilisera par défaut le champ start_url du fichier manifeste Web et demandera aux utilisateurs de confirmer la valeur, ce qui permet aux développeurs d'ajouter des paramètres supplémentaires à l'URL utilisée pour démarrer Progressive web app.

Afficher le résultat de la CLI Bubblewrap

Modifier un projet existant

Lorsque Bubblewrap génère un projet, les informations le concernant sont stockées dans un fichier nommé twa-manifest.json, dans le dossier du projet. Pour modifier l'URL de démarrage d'un projet existant, les développeurs doivent modifier le fichier:

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

Générez à nouveau les fichiers du projet et appliquez la nouvelle URL de démarrage.

bubblewrap update

Utiliser Android Studio

Lorsque vous utilisez Android Studio et l'élément "Launcher" par défaut, startUrl est définie en tant que balise Meta. dans le fichier AndroidManifest.xml, et nous pouvons modifier l'URL utilisée pour lancer l'activité Web sécurisée en la modifier:

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

Modifier l'URL de démarrage de façon dynamique

Dans d'autres cas, les développeurs peuvent souhaiter créer des paramètres qui changent selon les utilisateurs ou les sessions, pour Compute Engine. Dans la plupart des cas, il s'agira de recueillir des informations depuis le côté Android de la pour la transmettre à la progressive web app.

Étape 1: Créez un lanceurActivity personnalisé

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

Étape 2: Modifiez AndroidManifest.xml pour utiliser l'objet LauncherActivity personnalisé

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

Conclusion

La transmission d'informations de la partie native à la partie Web d'une application peut se faire en utilisant paramètres de requête. Lorsqu'un paramètre est ajouté à la chaîne de requête, il est accessible aux scripts sur la page et peuvent également faire partie du site référent lorsque les utilisateurs accèdent à une autre page ou le développeur met en œuvre une action de partage.

Les développeurs doivent être conscients de ces conséquences et peuvent les atténuer en utilisant link rel=noreferrer ou nettoyer l'URL à l'aide de l'API Page Location.

Le protocole Activité Web fiable ne fournit actuellement aucun mécanisme permettant d'échanger des messages avec la partie native de l'application après que la partie Web est appelée.

Nous pensons que les API de la plate-forme Web, existantes ou à venir, répondent à la plupart des besoins des développeurs. Si que vous soyez à la recherche d'API Web nouvelles ou à venir, consultez la page d'état des nouvelles fonctionnalités.