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

Zaufane aktywności internetowe to nowy sposób na integrację treści aplikacji internetowej, np. progresywnej aplikacji internetowej, z aplikacją na Androida za pomocą protokołu opartego na kartach niestandardowych.

ff-origin navigation

Aby można było wyświetlić treści w pełnym ekranie, wiarygodna aktywność w internecie wymaga zweryfikowania otwieranych źródeł za pomocą linków do zasobów cyfrowych.

Gdy użytkownik opuści zweryfikowany punkt początkowy, wyświetli się interfejs karty niestandardowej. Pasek adresu URL na karcie niestandardowej informuje użytkowników, że znajdują się teraz w domenie poza aplikacją. Zawiera też przycisk X, który umożliwia szybkie powrót do zweryfikowanego źródła.

Aplikacje internetowe często tworzą też rozwiązania, które obejmują wiele źródeł. Przykładem może być aplikacja do zakupów, której główna część jest dostępna pod adresem www.example.com, a proces płatności jest hostowany pod adresem 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 też dlatego, że górny pasek może sprawić, że użytkownik pomyśli, że opuścił aplikację i porzucił proces płatności.

Zaufane aktywności internetowe umożliwiają programistom sprawdzanie wielu źródeł, a użytkownik pozostaje w trybie pełnoekranowym podczas poruszania się między tymi źródłami. Podobnie jak w przypadku domeny głównej, deweloper musi mieć możliwość kontrolowania każdej zweryfikowanej witryny.

Konfigurowanie weryfikacji wielu źródeł

Podobnie jak w przypadku głównego źródła, weryfikacja odbywa się za pomocą protokołu Digital Asset Links, a każda domena, która ma zostać zweryfikowana, musi mieć własny plik assetlinks.json.

W naszym przykładzie z adresami www.example.comcheckout.example.com otrzymamy:

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

Przy założeniu, że nazwa pakietu aplikacji na Androida to com.example.twa, oba pliki assetlink.json zawierają coś podobnego do tego:

[{
  "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 należy zaktualizować deklarację asset_statements, aby zawierała wszystkie źródła, które wymagają 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>

Dodawanie dodatkowych źródeł do LauncherActivity

Korzystanie z domyślnego LauncherActivity

Komponent LauncherActivity, który jest częścią biblioteki pomocy android-browser-helper, umożliwia dodanie wielu źródeł, które mają być weryfikowane przez skonfigurowanie projektu na Androida.

Najpierw dodaj element string-array do pliku res/values/strings.xml. Każdy dodatkowy adres URL do zweryfikowania będzie się znajdował w elemencie podrzędnym item:

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

Następnie w dotychczasowym elemencie działania, który odwołuje się do elementu LauncherActivity, dodaj nowy tag meta-data 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>
...

Korzystanie z niestandardowej metody LauncherActivity

Jeśli do uruchomienia zaufanej aktywności internetowej używasz kodu niestandardowego, możesz dodać dodatkowe źródła, wywołując funkcję setAdditionalTrustedOrigins podczas tworzenia intencji, która uruchamia zaufaną aktywność internetową:

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 zawiera próbną aplikację do obsługi zaufanej aktywności internetowej z wielu źródeł. Sprawdź to.

Rozwiązywanie problemów

Konfigurowanie połączeń z zasobami cyfrowymi wymaga kilku działań. Jeśli aplikacja nadal wyświetla pasek kart niestandardowych u góry, prawdopodobnie wystąpił błąd konfiguracji.

Przewodniku wdrożeniowym dotyczącym zaufanej aktywności w internecie znajdziesz świetną sekcję dotyczącą rozwiązywania problemów, w której znajdziesz informacje o debugowaniu problemów z Digital Asset Link.

Jest też świetne narzędzie Peter's Asset Link Tool, które ułatwia debugowanie połączeń z zasobami cyfrowymi w aplikacji zainstalowanej na urządzeniu.