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.
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.
Dodaj plik assetlinks do każdego źródła
W naszym przykładzie z adresami www.example.com i checkout.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.
W 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.