Zaufane działania internetowe pochodzące z wielu źródeł

Zaufane działania w internecie to nowy sposób integracji treści aplikacji internetowych (np. PWA) z aplikacjami na Androida za pomocą protokołu opartego na kartach niestandardowych.

nawigacja ff-origin

Zaufana aktywność w internecie wymaga otwierania źródeł w celu weryfikacji za pomocą linków do zasobów cyfrowych, aby można było wyświetlać zawartość na pełnym ekranie.

Gdy użytkownik opuści zweryfikowane źródło, pojawi się interfejs karty niestandardowej. Pasek adresu URL na karcie niestandardowej informuje użytkowników, że korzystają teraz z domeny poza aplikacją, a także przycisk X, który umożliwia szybki powrót do zweryfikowanego źródła.

Często jednak aplikacje internetowe tworzą usługi, które obejmują wiele źródeł. Przykładem może być aplikacja zakupowa z główną stroną www.example.com, a proces płatności – checkout.example.com.

W takich przypadkach wyświetlanie kart niestandardowych jest niepożądane nie tylko dlatego, że użytkownik korzysta z tej samej aplikacji, ale także dlatego, że na górnym pasku może on uznać, że opuścił aplikację i porzucił transakcję.

Zaufane aktywności internetowe pozwalają deweloperom weryfikować wiele źródeł, a użytkownik pozostaje na pełnym ekranie podczas przechodzenia między takimi źródłami. Tak jak w przypadku domeny głównej, deweloper musi mieć możliwość kontrolowania każdego zweryfikowanego źródła.

Konfigurowanie weryfikacji wielu źródeł

Tak jak w głównym źródle, weryfikację przeprowadza się za pomocą linków do zasobów cyfrowych, a każda domena, która ma zostać poddana weryfikacji, musi mieć własny plik assetlinks.json.

W naszym przykładzie dla domen www.example.com i checkout.example.com wyglądałoby to, że:

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

Każda domena jest połączona z tą samą aplikacją na Androida, więc pliki assetlinks.json wyglądają dokładnie tak samo.

Zakładając, że nazwa pakietu aplikacji na Androida to com.example.twa, oba pliki assetlink.json będą zawierały nazwę podobną do tej:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

Dodawanie wielu źródeł do aplikacji na Androida

W aplikacji na Androida deklarację asset_statements należy zaktualizować tak, aby zawierała wszystkie źródła wymagające weryfikacji:

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

Dodaj więcej źródeł do LauncherActivity

Używanie domyślnego elementu LauncherActivity

LauncherActivity, który należy do biblioteki pomocy android-browser-helper, umożliwia dodawanie wielu źródeł do weryfikacji przez skonfigurowanie projektu Androida.

Najpierw dodaj element string-array do pliku res/values/strings.xml. Każdy dodatkowy adres URL, który ma zostać zweryfikowany, znajduje się w elemencie podrzędnym item:

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

Następnie dodaj nowy tag meta-data w istniejącym elemencie aktywności, który odwołuje się do elementu LauncherActivity, w elemencie 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>
...

Używanie niestandardowego elementu LauncherActivity

Jeśli używasz niestandardowego kodu do uruchamiania zaufanej aktywności internetowej, możesz dodać dodatkowe źródła, wywołując setAdditionalTrustedOrigins podczas tworzenia intencji uruchamiania zaufanej aktywności internetowej:

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);
}

Podsumowanie

Po wykonaniu tych czynności zaufana aktywność internetowa jest gotowa do obsługi wielu źródeł. android-browser-helper ma przykładową aplikację dla zaufanych aktywności internetowych z wielu źródeł. Pamiętaj, aby to sprawdzić.

Rozwiązywanie problemów

Konfiguracja Digital Asset Links składa się z kilku ruchomych elementów. Jeśli u góry aplikacji nadal jest widoczny pasek kart niestandardowych, prawdopodobnie coś jest nie tak z konfiguracją.

Krótki przewodnik po zaufanej aktywności w internecie zawiera świetną sekcję rozwiązywania problemów z informacjami o rozwiązywaniu problemów z Digital Asset Link.

Dostępne jest też narzędzie Peter’s Asset Link Tool, które pomaga debugować linki Digital Asset Links w aplikacjach zainstalowanych na urządzeniu.