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

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

Ein häufiger Anwendungsfall hierfür ist die Implementierung benutzerdefinierter Analysesegmentierungen, um Installationen und Sitzungen zu messen, die über die vertrauenswürdige Webaktivität gestartet wurden. Zur Implementierung können Suchparameter zur Start-URL hinzugefügt werden.

Start-URL ändern

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

Infofelder verwenden

Bubblewrap ist ein Tool, mit dem Entwickler ein Projekt für eine Android-App erstellen können, das vorhandene PWAs mithilfe einer vertrauenswürdigen Webaktivität startet. Sie enthält sowohl eine Bibliothek als auch eine Befehlszeile.

Neues Projekt erstellen

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

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

Der Assistent verwendet standardmäßig die Start-URL aus dem Web-Manifest und fordert Nutzer auf, den Wert zu bestätigen. So haben Entwickler die Möglichkeit, der URL, mit der die progressive Web-App gestartet wird, zusätzliche Parameter hinzuzufügen.

Ausgabe der Bubblewrap-Befehlszeile anzeigen

Vorhandenes Projekt ändern

Wenn Bubblewrap ein Projekt generiert, werden Informationen für dieses Projekt in einer Datei namens twa-manifest.json im Projektordner gespeichert. Um die Start-URL eines vorhandenen Projekts zu ändern, müssen Entwickler die Datei ä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

Bei Verwendung von Android Studio und der standardmäßigen LauncherActivity wird die startUrl als Meta-Tag in der AndroidManifest.xml-Datei definiert. Die URL, die zum Starten der vertrauenswürdigen Web-Aktivität verwendet wird, können wir ändern:

<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 bei Nutzern oder Sitzungen ändern. Dazu werden in den meisten Fällen von der Android-Seite der App Details erfasst, um sie an die progressive Web-App zu übergeben.

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 vom nativen Teil an den Webteil einer Anwendung kann mithilfe von Abfrageparametern erfolgen. Wenn ein Parameter dem Abfragestring hinzugefügt wird, ist er für Skripts zugänglich, die auf der Seite ausgeführt werden. Er kann auch Teil des Verweises sein, wenn Nutzer eine andere Seite aufrufen oder der Entwickler eine Freigabeaktion implementiert.

Entwickler müssen sich dieser Auswirkungen bewusst sein und sie mit link rel=noreferrer minimieren oder die URL mithilfe der Page Location API bereinigen.

Das Protokoll für vertrauenswürdige Webaktivitäten 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 vorhandene oder künftige Web Platform APIs die meisten Anwendungsfälle ermöglichen, die von Entwicklern benötigt werden. Informationen zu neuen oder zukünftigen Web-APIs finden Sie auf der Seite mit dem neuen Funktionsstatus.