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 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.
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
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 metody 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 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 cyfrowymi zasobami w aplikacji zainstalowanej na urządzeniu.