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

Wenn Entwickler vertrauenswürdige Webaktivitäten in ihren Anwendungen verwenden, müssen sie möglicherweise Informationen aus dem nativen Teil der Anwendung an die progressive Webanwendung (PWA) weitergeben.

Ein häufiger Anwendungsfall hierfür ist die Implementierung benutzerdefinierter Analysesegmentierungen, um Installationen und Sitzungen zu erfassen, die über vertrauenswürdige Webaktivitäten gestartet wurden. Um dies zu implementieren, können Abfrageparameter zur Start-URL hinzugefügt werden.

Start-URL ändern

Wenn der an die PWA übergebene Parameter für alle Nutzer und Starts gleich bleibt, kann er direkt an die Start-URL angehängt werden. Ein Beispiel hierfür ist, wenn Entwickler die Anzahl der Navigationssitzungen messen möchten, die aus einer vertrauenswürdigen Webaktivität erstellt wurden.

Bubblewrap verwenden

Bubblewrap ist ein Tool, mit dem Entwickler ein Projekt für eine Android-Anwendung erstellen können, die vorhandene PWAs ü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 Standardwerte aus einem Webmanifest erstellt, das als Parameter angegeben wird:

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

Der Assistent verwendet standardmäßig die start_url aus dem Webmanifest und fordert die Nutzer auf, den Wert zu bestätigen. Entwickler haben so die Möglichkeit, der URL, über die die Progressive Web-App gestartet wird, zusätzliche Parameter hinzuzufügen.

Bubblewrap-Befehlszeilenausgabe 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 Entwickler die Start-URL für ein vorhandenes Projekt ändern möchten, müssen sie die Datei folgendermaßen ändern:

{
  ...
  "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. Wir können die URL, die zum Starten der vertrauenswürdigen Webaktivität verwendet wird, ändern, indem wir sie so anpassen:

<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 für Nutzer oder Sitzungen ä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 ändern, um die benutzerdefinierte LauncherActivity zu verwenden

<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

Die Übergabe von Informationen aus dem nativen Teil an den Webteil einer Anwendung kann mithilfe von Abfrageparametern erfolgen. Wenn dem Suchstring ein Parameter hinzugefügt wird, ist er für Scripts zugänglich, die auf der Seite ausgeführt werden. Er kann auch Teil der Verweisquelle sein, wenn Nutzer zu einer anderen Seite wechseln oder der Entwickler eine Freigabeaktion implementiert.

Entwickler müssen sich dieser Auswirkungen bewusst sein und sie mindern können, indem sie link rel=noreferrer verwenden oder die URL mithilfe der Page Location API bereinigen.

Das Protokoll der vertrauenswürdigen Webaktivität bietet derzeit keinen Mechanismus für den Austausch von Nachrichten mit dem nativen Teil der Anwendung, nachdem der Webteil aufgerufen wurde.

Wir sind der Meinung, dass bestehende oder zukünftige Web-Plattform-APIs die meisten Anwendungsfälle ermöglichen, die Entwickler benötigen. Informationen zu neuen oder anstehenden Web-APIs finden Sie auf der Statusseite für neue Funktionen.