Przeglądanie w aplikacji za pomocą osadzonej przeglądarki

Przeglądarki w aplikacjach zapewniają użytkownikom pełne możliwości przeglądania internetu bez konieczności opuszczania aplikacji. Android oferuje 2 główne interfejsy API do implementowania przeglądarek w aplikacjach: karty niestandardowekomponenty WebView. Używaj przeglądarki w aplikacji, gdy masz link lub reklamę prowadzącą do strony internetowej. Możesz otworzyć tę stronę bezpośrednio w aplikacji, jak widać na rysunku 1.

Link w aplikacji w czerwonym polu i strzałka wskazująca inny ekran, na którym widać link otwarty na karcie niestandardowej.
Rysunek 1. Kliknięcie linku w aplikacji (po lewej) i otwarcie przeglądarki w aplikacji za pomocą karty niestandardowej (po prawej).

Wybór między kartami niestandardowymi a widokami WebView to ważna decyzja architektoniczna, która wpływa na szybkość tworzenia aplikacji, wygodę użytkowników i stopień kontroli nad interfejsem.

Szybkie porównanie

Tabela poniżej pomoże Ci zdecydować, które narzędzie jest dla Ciebie odpowiednie:

Funkcja WebView Karty niestandardowe
Główny przypadek użycia tworzenia aplikacji hybrydowych, w których internet jest główną lub pomocniczą treścią, wyświetlania reklam, kampanii w aplikacji lub stron z warunkami usługi; wyświetlanie treści z zewnętrznych witryn (np. artykułów z wiadomościami lub stron produktów);
Element sterujący interfejsu Pełny Jest to View komponent, który możesz umieścić w dowolnym miejscu. Masz kontrolę nad całym interfejsem. Ograniczone Możesz zmienić kolor paska narzędzi i dodać kilka działań niestandardowych.
Dane i sesje W piaskownicy Nie udostępnia plików cookie ani danych logowania głównej przeglądarce użytkownika. Udostępniono Korzysta z domyślnej sesji przeglądarki użytkownika, w tym z plików cookie i zapisanych haseł.
Most między aplikacją natywną a internetową Tak. Możesz użyć mostu JavaScript do głębokiej, dwukierunkowej komunikacji między treściami internetowymi a kodem aplikacji natywnej. Ograniczone Do podstawowego przekazywania ciągów tekstowych możesz użyć metody window.postMessage().
Nakład pracy dewelopera Wysoki Musisz samodzielnie zarządzać cyklem życia, nawigacją i wydajnością. Niski Możesz go wdrożyć za pomocą kilku linii kodu.

WebView

WebView to widok, który sprawia, że strony internetowe stają się integralną częścią układu aplikacji. Jest to potężne narzędzie, ale w porównaniu z kartami niestandardowymi jest nieco bardziej skomplikowane w obsłudze.

Komponent WebView może wczytywać zdalne lub lokalne treści internetowe, wykonywać JavaScript i umożliwiać dwukierunkową komunikację między treściami internetowymi a kodem aplikacji natywnej. Więcej informacji o jego możliwościach znajdziesz w artykule Co można robić w WebView.

Możesz też używać WebView do udostępniania aplikacji internetowej lub wyświetlania strony internetowej online w ramach aplikacji. Przykładem może być umowa z użytkownikiem, którą musisz okresowo aktualizować. Więcej informacji znajdziesz w artykule Tworzenie aplikacji internetowych w WebView.

Dlaczego warto wybrać WebView

Oto kilka sytuacji, w których interfejs WebView jest dobrym rozwiązaniem:

  • Aplikacje hybrydowe: tworzysz aplikację, w której treści internetowe i komponenty natywne (np. pasek nawigacyjny lub pływający przycisk działania) znajdują się obok siebie.
  • Treści własne: Twoje treści internetowe stanowią podstawową, interaktywną część aplikacji, np. edytor dokumentów lub obszar projektowy.
  • Pełna kontrola nad interfejsem: musisz zmodyfikować zawartość strony internetowej lub nałożyć na nią natywne elementy interfejsu.
  • Szczegółowe statystyki: potrzebujesz szczegółowych informacji o zaangażowaniu i aktywności użytkowników w widoku internetowym.

Kluczowe kompromisy

Oto kilka kluczowych kompromisów, które należy wziąć pod uwagę podczas korzystania z WebView:

  • Wydajność: WebView może zużywać dużo pamięci. Jeśli nie będziesz nim starannie zarządzać, możesz napotkać problemy z wydajnością lub błędy ANR (aplikacja nie odpowiada).
  • Bezpieczeństwo i konserwacja: odpowiadasz za wzmacnianie zabezpieczeń i zarządzanie cyklem życia. Obejmuje to zarządzanie zachowywaniem stanu podczas ponownego tworzenia procesu za pomocą WebViewCompat.saveState() i utrzymywanie się w ramach limitu transakcji zapisanego stanu Androida wynoszącego 1 MB. Aktualizacje WebView są jednak udostępniane na całym świecie w Google Play, więc nie musisz się martwić, że podstawowy silnik będzie nieaktualny.

Karty niestandardowe

Karty niestandardowe to doskonałe rozwiązanie do kierowania użytkowników do zewnętrznych adresów URL, ponieważ zapewniają szybkie, bezpieczne i przyjazne dla użytkownika okno przeglądarki, które wysuwa się nad aplikacją.

Dlaczego warto wybrać karty niestandardowe

Oto kilka scenariuszy, w których karty niestandardowe sprawdzają się najlepiej:

  • Linki zewnętrzne: gdy użytkownik kliknie link do witryny, która nie należy do Ciebie, karty niestandardowe zachowują kontekst aplikacji, zapewniając jednocześnie pełną funkcjonalność przeglądarki.
  • Łatwość integracji: to najprostszy sposób na uruchomienie osadzonego środowiska internetowego.
  • Stan udostępniony: ponieważ udostępnia pliki cookie domyślnej przeglądarce użytkownika, użytkownicy nie muszą ponownie logować się w witrynach, które już odwiedzili.
  • Logowanie w usługach innych firm: są one odpowiednie w przypadku logowania w usługach innych firm (np. „Zaloguj się przez Google” lub „Zaloguj się przez Facebooka”), ponieważ przeglądarka bezpiecznie obsługuje dane logowania.

Większość przeglądarek obsługuje karty niestandardowe, ale niektóre oferują więcej opcji dostosowywania niż inne. Więcej informacji znajdziesz w sekcji Obsługiwane przeglądarki.

Używanie treści internetowych w Jetpack Compose

Podczas tworzenia aplikacji za pomocą Jetpack Compose możesz używać zarówno kart niestandardowych, jak i widoku WebView:

  • Karty niestandardowe: ponieważ karty niestandardowe korzystają z Intent, możesz je uruchamiać z dowolnego Context w funkcjach Compose, co zapewnia płynną integrację.
  • WebView: Compose nie ma jeszcze natywnego komponentu WebView, więc musisz użyć AndroidView, aby osadzić standardowy komponent WebView w układzie.

Dodatkowe materiały

Aby tworzyć strony internetowe na urządzenia z Androidem za pomocą interfejsów API WebView lub kart niestandardowych, zapoznaj się z tymi dokumentami: