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. Dazu 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 für diese Verwendung ist, wenn Entwickler die Anzahl der Navigationssitzungen messen möchten, die über eine vertrauenswürdige 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 die Informationen für dieses 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",
  ...
}

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

Mithilfe von Abfrageparametern können Informationen vom nativen Teil an den Webteil einer Anwendung übergeben werden. 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 können sie mithilfe von link rel=noreferrer oder durch Bereinigen der URL mit der Seitenstandort-API minimieren.

Das Trusted Web Activity-Protokoll bietet derzeit keinen Mechanismus zum Austausch von Nachrichten mit dem nativen Teil der Anwendung, nachdem der Webpart 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.