Vertrauenswürdige Web-Aktivitäten sind eine neue Möglichkeit, Web-App-Inhalte wie Ihre PWA in Ihre Android-App einzubinden. Dabei wird ein Protokoll verwendet, das auf benutzerdefinierten Tabs basiert.
Für eine vertrauenswürdige Web-Aktivität müssen die geöffneten Ursprünge mithilfe von Digital Asset Links validiert werden, damit die Inhalte im Vollbildmodus angezeigt werden.
Wenn ein Nutzer die validierte Quelle verlässt, wird die Benutzeroberfläche des benutzerdefinierten Tabs angezeigt. In der URL-Leiste des benutzerdefinierten Tabs wird den Nutzern angezeigt, dass sie sich jetzt in einer Domain außerhalb der Anwendung befinden. Außerdem wird ihnen eine Schaltfläche „X“ angezeigt, über die sie schnell zum validierten Ursprung zurückkehren können.
Es ist jedoch auch üblich, dass Web-Apps mehrere Ursprünge umfassen. Ein Beispiel hierfür ist eine Shopping-App, deren Hauptfunktionen unter www.beispiel.de gehostet werden, während der Checkout-Vorgang unter checkout.beispiel.de gehostet wird.
In solchen Fällen ist die Anzeige von benutzerdefinierten Tabs unerwünscht, nicht nur, weil sich der Nutzer in derselben Anwendung befindet, sondern auch, weil die obere Leiste den Nutzer dazu verleiten könnte, die Anwendung zu verlassen und den Checkout abzubrechen.
Bei Trusted Web Activities können Entwickler mehrere Ursprünge validieren und der Nutzer bleibt im Vollbildmodus, wenn er zwischen diesen Ursprüngen wechselt. Wie bei der Hauptdomain muss der Entwickler in der Lage sein, jeden validierten Ursprung zu kontrollieren.
Validierung für mehrere Ursprünge einrichten
Wie beim Hauptursprung erfolgt die Validierung über Digital Asset Links. Für jede zu validierende Domain ist eine eigene assetlinks.json-Datei erforderlich.
assetlinks-Datei für jeden Ursprung hinzufügen
In unserem Beispiel mit www.example.com und checkout.example.com sieht das so aus:
https://www.example.com/.well-known/assetlinks.json
https://checkout.example.com/.well-known/assetlinks.json
Da jede Domain mit derselben Android-Anwendung verbunden wird, sehen die assetlinks.json
-Dateien genau gleich aus.
Angenommen, der Paketname für die Android-Anwendung ist com.example.twa
. Dann würden beide assetlink.json
-Dateien in etwa Folgendes enthalten:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": ["..."]}
}]
Der Android-Anwendung mehrere Ursprünge hinzufügen
In der Android-Anwendung muss die asset_statements
-Erklärung aktualisiert werden, damit sie alle Ursprünge enthält, die validiert werden müssen:
<string name="asset_statements">
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://www.example.com\"
}
}],
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://checkout.example.com\"
}
}],
</string>
Zusätzliche Quellen zur LauncherActivity hinzufügen
Standard-LauncherActivity verwenden
Die LauncherActivity
, die Teil der android-browser-helper
-Supportbibliothek ist, bietet eine Möglichkeit, mehrere zu validierende Ursprünge hinzuzufügen, indem Sie das Android-Projekt konfigurieren.
Fügen Sie zuerst der Datei res/values/strings.xml
ein string-array
-Element hinzu. Jede zusätzliche zu validierende URL befindet sich in einem item
-Unterelement:
...
<string-array name="additional_trusted_origins">
<item>https://www.google.com</item>
</string-array>
...
Fügen Sie als Nächstes ein neues meta-data
-Tag in das vorhandene Aktivitätselement ein, das auf die LauncherActivity
in AndroidManifest.xml
verweist:
...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
android:label="@string/app_name">
<meta-data
android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
android:resource="@array/additional_trusted_origins" />
...
</activity>
...
Benutzerdefinierte LauncherActivity verwenden
Wenn Sie benutzerdefinierten Code zum Starten einer Trusted Web Activity verwenden, können Sie zusätzliche Ursprünge hinzufügen, indem Sie setAdditionalTrustedOrigins
aufrufen, wenn Sie die Intent zum Starten der Trusted Web Activity erstellen:
public void launcherWithMultipleOrigins(View view) {
List<String> origins = Arrays.asList(
"https://checkout.example.com/"
);
TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
.setAdditionalTrustedOrigins(origins);
new TwaLauncher(this).launch(builder, null, null);
}
Fazit
Nach diesen Schritten kann die vertrauenswürdige Web-Aktivität mehrere Ursprünge unterstützen. Das Android Browser Helper-Tool enthält eine Beispielanwendung für vertrauenswürdige Web-Aktivitäten mit mehreren Ursprüngen. Sehen Sie sich das unbedingt an.
Fehlerbehebung
Das Einrichten von Digital Asset Links umfasst mehrere Schritte. Wenn in der Anwendung weiterhin die Leiste für benutzerdefinierte Tabs oben angezeigt wird, ist wahrscheinlich etwas mit der Konfiguration nicht in Ordnung.
Im Schnelleinstieg für vertrauenswürdige Web-Aktivitäten finden Sie einen Abschnitt zur Fehlerbehebung, in dem beschrieben wird, wie Sie Probleme mit Digital Asset Links beheben können.
Außerdem gibt es das Asset Link Tool von Peter, mit dem sich Digital Asset Links für auf dem Gerät installierte Anwendungen debuggen lassen.