Vertrauenswürdige Web-Aktivitäten sind eine neue Möglichkeit, Web-App-Inhalte wie Ihre PWA mithilfe eines Protokolls, das auf benutzerdefinierten Tabs basiert, in Ihre Android-App einzubinden.
Bei einer vertrauenswürdigen Webaktivitä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 den bestätigten Ursprung verlässt, wird die Benutzeroberfläche des benutzerdefinierten Tabs angezeigt. Die URL-Leiste auf dem Tab „Benutzerdefiniert“ informiert die Nutzer darüber, dass sie sich jetzt in einer Domain außerhalb der Anwendung befinden. Außerdem wird ihnen eine Schaltfläche mit einem X angezeigt, über die sie schnell zum bestätigten Ursprung zurückkehren können.
Es ist aber auch üblich, dass Web-Apps mehrere Ursprünge umfassen. Ein Beispiel wäre eine Shopping-App, deren Hauptfunktion unter www.beispiel.de aufgerufen wird, während der Bezahlvorgang unter checkout.beispiel.de gehostet wird.
In solchen Fällen ist die Anzeige der benutzerdefinierten Tabs nicht erwünscht, nicht nur weil sich der Nutzer in derselben App befindet, sondern auch weil die obere Leiste den Nutzer dazu verleiten könnte, zu glauben, dass er die App verlassen hat und den Bezahlvorgang abbricht.
Mit vertrauenswürdigen Webaktivitäten können Entwickler mehrere Ursprünge validieren. Der Nutzer bleibt dabei im Vollbildmodus. 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. Jede zu validierende Domain muss eine eigene assetlinks.json-Datei haben.
Fügen Sie jeder Quelle eine Asset-Links-Datei hinzu.
In unserem Beispiel mit www.beispiel.de und checkout.beispiel.de hätten wir:
https://www.example.com/.well-known/assetlinks.json
https://checkout.example.com/.well-known/assetlinks.json
Da jede Domain mit derselben Android-Anwendung verbunden ist, sehen die assetlinks.json
-Dateien genau gleich aus.
Wenn der Paketname für die Android-App com.example.twa
lautet, enthalten beide assetlink.json
-Dateien etwa Folgendes:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": ["..."]}
}]
Android-App 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>
LauncherActivity zusätzliche Ursprünge hinzufügen
Standard-LauncherActivity verwenden
Die LauncherActivity
, die Teil der android-browser-helper
-Supportbibliothek ist, bietet die Möglichkeit, mehrere Ursprünge hinzuzufügen, die durch Konfigurieren des Android-Projekts validiert werden sollen.
Fügen Sie der Datei res/values/strings.xml
zuerst ein string-array
-Element hinzu. Jede zusätzliche URL, die validiert werden soll, befindet sich in einem item
-Unterelement:
...
<string-array name="additional_trusted_origins">
<item>https://www.google.com</item>
</string-array>
...
Füge als Nächstes in AndroidManifest.xml
ein neues meta-data
-Tag im vorhandenen Aktivitätselement hinzu, das auf LauncherActivity
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 vertrauenswürdigen Webaktivität verwenden, können Sie zusätzliche Ursprünge hinzufügen, indem Sie setAdditionalTrustedOrigins
aufrufen, wenn Sie den Intent zum Starten der vertrauenswürdigen Webaktivität 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 Funktion „Vertrauenswürdige Web-Aktivität“ jetzt mehrere Ursprünge unterstützen. In android-browser-helper finden Sie eine Beispielanwendung für vertrauenswürdige Web-Aktivitäten mit mehreren Ursprüngen. Prüfen Sie das unbedingt.
Fehlerbehebung
Das Einrichten von Digital Asset Links ist recht komplex. Wenn die Leiste für benutzerdefinierte Tabs weiterhin oben in der Anwendung angezeigt wird, liegt wahrscheinlich ein Problem mit der Konfiguration vor.
Im Schnellstartleitfaden für vertrauenswürdige Webaktivitäten finden Sie einen Abschnitt zur Fehlerbehebung, in dem beschrieben wird, wie Sie Probleme mit Digital Asset Links beheben.
Außerdem gibt es das Asset Link Tool von Peter, mit dem sich Digital Asset Links in auf dem Gerät installierten Apps beheben lassen.