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 die bestätigte Quelle 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 jeden bestätigten Ursprung verwalten können.
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üge 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.
Angenommen, der Paketname der Android-Anwendung lautet com.example.twa
, 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": ["..."]}
}]
Mehrere Ursprünge zur Android-Anwendung 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ü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 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
Mit diesen Schritten ist die Funktion „Vertrauenswürdige Web-Aktivität“ jetzt für die Unterstützung mehrerer Ursprünge bereit. 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
Die Einrichtung von Digital Asset Links ist recht komplex. Wenn in der Anwendung weiterhin die Leiste „Benutzerdefinierte Tabs“ oben angezeigt wird, ist wahrscheinlich ein Problem mit der Konfiguration aufgetreten.
Im Schnellstartleitfaden für vertrauenswürdige Webaktivitäten finden Sie einen Abschnitt zur Fehlerbehebung, in dem beschrieben wird, wie Sie Probleme mit Digital Asset Link 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.