Informationen mithilfe von Suchparametern an eine vertrauenswürdige Web-Aktivität weitergeben

Wenn Entwickler vertrauenswürdige Web-Aktivitäten in ihren Anwendungen verwenden, müssen sie möglicherweise Informationen aus dem nativen Teil der Anwendung in die Progressive Web-App (PWA) übergeben.

Ein häufiger Anwendungsfall ist die Implementierung benutzerdefinierter Analyse-Segmentierungen, um Installationen und Sitzungen zu messen, die über die Trusted Web Activity gestartet wurden. Dazu können der Start-URL Abfrageparameter hinzugefügt werden.

Start-URL ändern

Wenn der Parameter, der an die PWA übergeben wird, für alle Nutzer und Starts gleich bleibt, kann er direkt an die Start-URL angehängt werden. Ein Beispiel für diese Verwendung ist, wenn Entwickler die Anzahl der Navigationssitzungen messen möchten, die über eine Trusted Web Activity erstellt wurden.

Bubblewrap verwenden

Bubblewrap ist ein Tool, mit dem Entwickler ein Projekt für eine Android-Anwendung erstellen können, die eine vorhandene PWA über eine vertrauenswürdige Web-Aktivität startet. Sie enthält sowohl eine Bibliothek als auch eine Befehlszeilenschnittstelle (Command Line Interface, CLI).

Neues Projekt erstellen

Wenn Sie die Bubblewrap-Befehlszeile verwenden, wird ein Projekt mit dem Befehl init initialisiert und es werden Standardwerte aus einem Web-Manifest erstellt, das als Parameter angegeben wird:

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

Der Assistent verwendet die start_url aus dem Webmanifest als Standardwert und fordert Nutzer auf, den Wert zu bestätigen. So haben Entwickler die Möglichkeit, der URL, die zum Starten der Progressive Web App verwendet wird, zusätzliche Parameter hinzuzufügen.

Bubblewrap-CLI-Ausgabe anzeigen

Vorhandenes Projekt ändern

Wenn Bubblewrap ein Projekt generiert, werden Informationen zu diesem Projekt in einer Datei namens twa-manifest.json im Projektordner gespeichert. Wenn Sie die Start-URL für ein vorhandenes Projekt ändern möchten, müssen Sie die folgende Datei bearbeiten:

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

Generieren Sie dann die Projektdateien neu und wenden Sie die neue Start-URL an.

bubblewrap update

Android Studio verwenden

Wenn Sie Android Studio und die Standard-LauncherActivity verwenden, wird die startUrl als Meta-Tag in AndroidManifest.xml definiert. Sie können die URL, die zum Starten der Trusted Web Activity verwendet wird, ändern, indem Sie sie bearbeiten:

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

Start-URL dynamisch ändern

In anderen Fällen möchten Entwickler möglicherweise Parameter erstellen, die sich beispielsweise je nach Nutzer oder Sitzung ändern. In den meisten Fällen müssen dazu Details von der Android-Seite der Anwendung erfasst und an die progressive Web-App übergeben werden.

Schritt 1: Benutzerdefinierte LauncherActivity erstellen

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

Schritt 2: AndroidManifest.xml so ändern, dass die benutzerdefinierte LauncherActivity verwendet wird

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

Fazit

Informationen vom nativen Teil an den Webteil einer Anwendung können mithilfe von Abfrageparametern übergeben werden. Wenn ein Parameter dem Query-String hinzugefügt wird, ist er für Skripts zugänglich, die auf der Seite ausgeführt werden. Er kann auch Teil des Referrers sein, wenn Nutzer zu einer anderen Seite wechseln oder der Entwickler eine Freigabeaktion implementiert.

Entwickler müssen sich dieser Auswirkungen bewusst sein und können sie mit link rel=noreferrer oder durch Bereinigen der URL mit der Page Location API abmildern.

Das Trusted Web Activity-Protokoll bietet derzeit keinen Mechanismus zum Austausch von Nachrichten mit dem nativen Teil der Anwendung, nachdem der Webteil aufgerufen wurde.

Wir sind der Meinung, dass die meisten von Entwicklern benötigten Anwendungsfälle durch vorhandene oder zukünftige Webplattform-APIs abgedeckt werden. Wenn Sie nach neuen oder bevorstehenden Web-APIs suchen, sehen Sie sich die Statusseite für neue Funktionen an.