Vertrauenswürdige Webaktivitäten aus mehreren Quellen

Vertrauenswürdige Web-Aktivitäten sind eine neue Möglichkeit, Web-App-Inhalte wie PWA in Ihre Android-App mithilfe eines Protokolls, das auf benutzerdefinierten Tabs basiert.

ff-Ursprungsnavigation

Für eine vertrauenswürdige Webaktivität müssen die Ursprünge mit der folgenden Methode validiert werden: Digital Asset Links, um die Inhalte im Vollbildmodus anzuzeigen.

Wenn ein Nutzer den bestätigten Ursprung verlässt, wird die Benutzeroberfläche des benutzerdefinierten Tabs angezeigt. Über die URL-Leiste in der benutzerdefinierten Tab teilt den Nutzern mit, dass sie jetzt innerhalb einer Domain außerhalb der Anwendung navigieren. dem Nutzer eine X-Schaltfläche zur Verfügung stellen, mit der er schnell zum bestätigten Ursprung zurückkehren kann.

Es kommt aber auch häufig vor, dass Web-Apps Inhalte erstellen, die mehrere Ursprünge umfassen. Ein Beispiel eine Shopping-App mit dem Hauptangebot unter www.example.com, während der Bezahlvorgang wird unter checkout.example.com gehostet.

In solchen Fällen ist es nicht erwünscht, die benutzerdefinierten Tabs anzuzeigen, und zwar nicht nur, weil sich der Nutzer im dieselbe Anwendung, sondern auch, weil die obere Leiste den Nutzenden nahebringen könnte, die Anwendung verlassen zu haben. und den Bezahlvorgang abbrechen.

Mit vertrauenswürdigen Webaktivitäten können Entwickler mehrere Ursprünge validieren und der Nutzer bleibt in wenn Sie zwischen diesen Ursprüngen navigieren. Wie bei der Hauptdomain muss der Entwickler jeden überprüften Ursprung kontrollieren können.

Validierung für mehrere Ursprünge einrichten

Wie bei der Hauptquelle erfolgt die Validierung über Digital Asset Links und jede Domain, die muss eine eigene assetlinks.json-Datei haben.

In unserem Beispiel mit www.example.com und www.example.com wäre das so:

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

Da jede Domain mit derselben Android-App verbunden wird, werden die assetlinks.json-Dateien genau gleich aussehen.

Wenn der Paketname für die Android-App com.example.twa lautet, assetlink.json enthalten in 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-App muss die Deklaration asset_statements so aktualisiert werden, dass sie alle Ursprünge, die bestätigt 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>

Der LauncherActivity zusätzliche Ursprünge hinzufügen

Standard-LauncherActivity verwenden

Die LauncherActivity, die Teil der android-browser-helper-Supportbibliothek ist bietet die Möglichkeit, durch Konfigurieren des Android-Projekts mehrere Ursprünge hinzuzufügen, die validiert werden sollen.

Fügen Sie der Datei res/values/strings.xml zuerst ein string-array-Element hinzu. Jede zusätzliche URL, die validierten sich in einem item-Unterelement befinden:

...
<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, innerhalb von AndroidManifest.xml:

...
<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 beim Erstellen des Intents zum Starten der vertrauenswürdigen Webaktivität aufrufen:

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 kann die vertrauenswürdige Webaktivität jetzt mehrere Ursprünge unterstützen. android-browser-helper bietet eine Beispiel-App für vertrauenswürdige Webaktivitäten mit mehreren Ursprüngen. Marke sollten Sie das überprüfen.

Fehlerbehebung

Die Einrichtung von Digital Asset Links besteht aus mehreren Teilen. Wenn in der App immer noch der Fehlercode angezeigt wird, benutzerdefinierte Tabs oben angezeigt wird, liegt wahrscheinlich ein Problem mit der Konfiguration vor.

In der Kurzanleitung zu vertrauenswürdigen Web-Aktivitäten findest du in diesem Hilfeartikel hilfreiche Tipps zur Fehlerbehebung. um Digital Asset Link-Probleme zu beheben.

Mit dem hilfreichen Asset Link Tool von Peter lassen sich Digital Asset Links debuggen. über Apps, die auf dem Gerät installiert sind.