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