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, zaufane działanie w internecie wymaga weryfikacji 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 jest w tej samej aplikacji, ale też dlatego, że pasek górny może sprawić, że użytkownik pomyśli, że opuścił aplikację i porzucił proces płatności.

Zaufane działania w internecie umożliwiają deweloperom weryfikowanie wielu źródeł, a użytkownik pozostanie na pełnym ekranie podczas przechodzenia między tymi źródłami. Podobnie jak w przypadku domeny głównej, deweloper musi mieć możliwość kontrolowania każdej zweryfikowanej witryny.

Konfigurowanie walidacji dla 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

Ponieważ każda domena jest połączona z tą samą aplikacją na Androida, pliki assetlinks.json wyglądają tak samo.

Zakładając, że nazwa pakietu aplikacji na Androida to com.example.twa, oba pliki assetlink.json zawierałyby informacje podobne do tych:

[{
  "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ślnej aktywności 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, który ma zostać zweryfikowany, będzie znajdować się w podelemencie 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 w internecie 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 u góry pasek kart niestandardowych, prawdopodobnie konfiguracja jest nieprawidłowa.

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.