Nowości w internecie na Androidzie 2023

Jest wiele powodów, dla których deweloperzy korzystają z internetu na Androidzie: mogą na przykład ponownie wykorzystać widżet internetowy w aplikacji na Androida, wykorzystać treści własne lub innych firm, a nawet przenieść na platformę całą aplikację internetową. Niezależnie od zastosowania Android ma wiele narzędzi, które to umożliwiają.

Oto najnowsze aktualizacje tych narzędzi. Na przykład:

  • Ulepszenia prywatności i lepsza obsługa dużych ekranów, np. obsługa przeciągania i upuszczania obrazów w WebView.
  • Karty niestandardowe obsługują teraz częściowe karty niestandardowe.
  • Zintegrowane funkcje PWA, takie jak interfejs Richer instalacji i interfejs API rozliczeń w Play w Trusted Web Activities.

Przejdźmy do szczegółów i dowiedz się więcej.

WebView

WebView to najczęściej używany sposób umieszczania treści internetowych w aplikacjach na Androida, ponieważ zdecydowana większość aplikacji na Androida korzysta z komponentu WebView. To świetny sposób na bezproblemową integrację interfejsu internetowego z natywnymi aplikacjami na Androida. Możesz na przykład umieścić w aplikacji różne interfejsy internetowe, takie jak reklamy, widżety, a nawet przeglądarki w aplikacji. Jedną z największych zalet komponentu WebView jest zaawansowany interfejs API do kontrolowania i modyfikowania wczytywanych treści internetowych. Co nowego w komponencie WebView?

X-Requested-With nagłówek

Zacznijmy od prywatności i X-Requested-With wycofanie nagłówka. Gdy użytkownik instaluje i uruchamia aplikację, która używa WebView do umieszczania treści internetowych, komponent WebView dodaje nagłówek X-Requested-With do każdego żądania wysyłanego do serwerów. Wartością tego nagłówka jest nazwa pliku APK aplikacji. Oznacza to, że każde żądanie zawiera konkretne informacje o kontekście, w którym użytkownik korzysta z treści internetowych, i ujawnia tożsamość aplikacji usłudze online. Aby chronić prywatność użytkowników, zespół WebView rozpoczął okres próbny, w ramach którego usunięto ten nagłówek ze wszystkich żądań WebView.

Co jednak, jeśli aplikacja korzysta z nagłówka X-Requested-With? Zalecamy użycie nowego interfejsu API akceptacji, który umożliwia selektywne wysyłanie nagłówka żądania do określonych źródeł. Dzięki temu możesz korzystać z obu rozwiązań: nadal możesz obsługiwać dotychczasowe funkcje oparte na tym nagłówku, jednocześnie dbając o ochronę prywatności użytkownika we wszystkich pozostałych przypadkach. Jeśli chcesz zachować dotychczasowe działanie, możesz też zarejestrować się w celu skorzystania z testu origin X-Requested-With Deprecation.

WebSettingsCompat.setRequestedWithHeaderOriginAllowList(
    demoWebview.getSettings(), Collections.singleton("https://example.com")
);

Testowanie WebView

Kolejny temat to testowanie. Jeśli jesteś programistą stron internetowych i Twoje witryny generują duży ruch z komponentów WebView, masz dla Ciebie 2 aktualizacje:

  1. WebView obsługuje teraz testy origin Chrome. Wersje próbne origin dają dostęp do nowych i eksperymentalnych funkcji Chrome. Za ich pomocą możesz wypróbować nową funkcję, zanim udostępnimy ją wszystkim użytkownikom. Do tej pory testy origin były dostępne tylko w Chrome na komputerach i urządzeniach mobilnych, ale od wersji Chrome M110 testy origin działają też w komponencie WebView.

  2. Instalacja WebView w wersji beta jest teraz znacznie łatwiejsza. Zdecydowanie zalecamy przetestowanie witryny za pomocą kanału WebView w wersji beta, aby się upewnić, że będzie ona dobrze działać w przyszłych wersjach komponentu WebView. Aby to zrobić, dołącz do programu testów beta WebView w Sklepie Google Play, a Twoje urządzenie zostanie automatycznie zarejestrowane.

Zrzut ekranu strony internetowej umożliwiającej dołączenie do programu testów beta komponentu WebView.

Obsługa urządzeń z dużym ekranem

Chcemy, aby komponent WebView działał prawidłowo na urządzeniach z dużymi ekranami. Jednym z kroków w tym kierunku jest to, że WebView obsługuje teraz przeciąganie i upuszczanie obrazów. Na przykład w trybie podzielonego ekranu możesz przeciągnąć obraz z komponentu WebView do innej aplikacji.

Dodanie funkcji przeciągania i upuszczania do komponentów WebView jest bardzo łatwe: wystarczy zadeklarować komponent DropDataProvider w pliku AndroidManifest.

<application...>
     ...
     <provider
         android:authorities="com.example.webviewdemo.DropDataProvider"
         android:name="androidx.webkit.DropDataContentProvider"
         android:exported="false"
         android:grantUriPermissions="true"/>
 </application>

Jeśli chodzi o urządzenia z dużymi ekranami, Chrome i komponent WebView na Androidzie U będą w pełni obsługiwać pismo odręczne w polach wprowadzania tekstu HTML oraz gesty do usuwania tekstu i dodawania spacji. Obsługa pisma odręcznego jest już dostępna na wszystkich urządzeniach Samsung z One UI 5.1 (np. S23 Ultra). Na innych urządzeniach z Androidem T możesz włączyć pismo odręczne w opcjach programistycznych HTML.

Mechanizm JavaScript Jetpack

Czasami trzeba uruchomić JavaScript w aplikacji bez konieczności wyświetlania żadnych treści z internetu, na przykład przy udostępnianiu logiki biznesowej w internecie i aplikacjach mobilnych. Aby to ułatwić, w zeszłym roku udostępniliśmy wersję alfa nowego silnika JavaScript JetPack. Ta biblioteka korzysta z V8, czyli silnika JavaScriptu Chrome, i umożliwia aplikacji ocenę kodu JavaScript lub WebAssembly bez tworzenia instancji WebView. Ogromną zaletą nowego silnika JavaScript jest to, że wykonuje on JavaScript w innym procesie, dzięki czemu jest to bezpieczny i stabilny sposób uruchamiania JavaScriptu w aplikacji. Wymaga też mniej zasobów niż instancja WebView.

ListenableFuture<JavaScriptSandbox> jsSandboxFuture =
JavaScriptSandbox.createConnectedInstanceAsync(JavaScriptEngineActivity.this);
JavaScriptIsolate jsIsolate = jsSandboxFuture.get().createIsolate();
final String code =
"function sum(a, b) { let r = a + b; return r.toString(); }; sum(3, 4)";
ListenableFuture<String> resultFuture = jsIsolate.evaluateJavaScriptAsync(code);
…

Karty niestandardowe

Karta niestandardowa Androida ze stylem domyślnym.

Komponent WebView doskonale nadaje się do integrowania interfejsu internetowego z aplikacją. A co z zezwalaniem użytkownikom na przeglądanie treści z internetu w aplikacji?

To świetny przypadek użycia kart niestandardowych. Zapewniają bezpieczny i przyjazny dla użytkownika sposób na wyświetlanie treści internetowych w aplikacji. Ich dużą zaletą jest to, że nie muszą ponownie logować się w ulubionych witrynach. Jest to spowodowane tym, że jest to instancja domyślnej przeglądarki użytkownika i udostępnianych plików cookie. Oferują one wszystkie funkcje platformy internetowej i interfejsy API obsługiwane przez przeglądarkę, która ją obsługuje.

Oznacza to też, że jeśli domyślną przeglądarką jest Chrome, otwierana jest karta niestandardowa w Chrome, a jeśli domyślną przeglądarką jest Firefox, otwiera się w przeglądarce Firefox karta niestandardowa. Większość popularnych przeglądarek na Androidzie obsługuje karty niestandardowe. Jeśli domyślna przeglądarka nie obsługuje takich kart, otwiera się aplikacja przeglądarki.

Zaletą kart niestandardowych jest to, że możesz dostosowywać ich styl do wyglądu i stylu Twojej aplikacji, dodawać niestandardowe elementy interaktywne za pomocą działań i tworzyć własne paski narzędzi.

Karta niestandardowa na Androida z niestandardowym motywem kolorystycznym i paskami narzędzi.

Częściowe karty niestandardowe

Wprowadziliśmy dużą zmianę w dostosowywaniu kart niestandardowych z obsługą częściowych kart niestandardowych. Pozwalają użytkownikom wykonywać wiele zadań jednocześnie między aplikacjami i internetem. Do tej pory podczas korzystania z kart niestandardowych nakładka karty przeglądarki zakrywała cały ekran. Teraz możesz kontrolować wysokość nakładki karty niestandardowej. Dzięki temu użytkownicy mogą korzystać z aplikacji i treści internetowych w tym samym czasie. Jeśli przeglądarka użytkownika nie obsługuje częściowych kart niestandardowych, zobaczy tylko obsługiwaną kartę niestandardową na pełnym ekranie.

Wystarczy połączyć się z usługą kart niestandardowych, przekazać sesję do obiektu CustomTabsBuilder i wywołać funkcję setActivityHeight.

CustomTabsSession customTabsSession;

// ...

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(customTabsSession)
  .setInitialActivityHeightPx(500)
  .setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
  // ...
  .build();

customTabsIntent.launchUrl(context, Uri.parse(url))

W YouTube w reklamach nastawionej na reakcję bezpośrednią z powodzeniem pojawiły się karty niestandardowe z możliwością zmiany rozmiaru. W ten sposób firma wdrożyła nowy sposób interakcji z reklamami i treściami internetowymi, nie zakłócając korzystania z aplikacji.

reklamy reagujące bezpośrednio w YouTube wyświetlane na kartach niestandardowych;

Co jednak z tabletami i innymi urządzeniami z dużym ekranem? Zespół Chrome obecnie pracuje nad nowym interfejsem kart niestandardowych, który będzie działał w orientacji poziomej i na urządzeniach z dużym ekranem. Po zdefiniowaniu maksymalnej szerokości karty i punktem przerwania karta niestandardowa będzie automatycznie przełączać się między nakładką u dołu a kartą dodatkową. Ta funkcja jest już dostępna w wersji Canary i zostanie udostępniona w lipcu 2003 roku. Jeśli chcesz to wypróbować, sprawdź kod źródłowy przykładowej aplikacji Karty niestandardowe w Chromium.

Karty niestandardowe wyświetlane obok głównej zawartości aplikacji.

Pomiar sygnałów dotyczących zaangażowania

Druga duża aktualizacja kart niestandardowych polega na mierzeniu zaangażowania użytkowników w konkretnej sesji. Jeśli Twoja aplikacja regularnie wyświetla użytkownikom treści, w tym linki, np. w kanale wiadomości, warto byłoby wiedzieć, które linki są dla użytkowników wartościowe, a które nie? Te informacje mogą być bardzo pomocne, gdy chodzi o określanie, które linki mają być wyświetlane użytkownikom w pierwszej kolejności.

Zespół Chrome dodał do kart niestandardowych Chrome widoczność danych związanych z sesją. Poza czasem, przez jaki użytkownik pozostaje na stronie, możesz też uzyskać wgląd w odległość przewijania, kierunek przewijania i ogólne zaangażowanie użytkowników w treści internetowe.

Sygnały dotyczące zaangażowania są dostępne od Chrome 114 i wymagają biblioteki obsługi androidx.browser:browser:1.6.0-alpha01 lub nowszej. Więcej informacji znajdziesz w przewodniku dla początkujących użytkowników dotyczącym sygnałów zaangażowania.

PWA

Są też aktualizacje PWA – zestawu technologii umożliwiających tworzenie rozwiązań przypominających aplikacje, skupionych i wdrażanych w internecie.

Korzystając z PWA na Androidzie, możesz zainstalować Twoją aplikację internetową – będzie ona działać razem z innymi aplikacjami platformy, na ekranie głównym, w Menu z aplikacjami, ustawieniach i na innych platformach.

Funkcje PWA opierają się na standardach internetowych. Skupiają się na zgodności z wieloma platformami, dają programistom narzędzia, dzięki którym mogą raz utworzyć aplikację internetową, a użytkownicy mogą ją zainstalować na dowolnym urządzeniu. Stworzenie aplikacji internetowej z możliwością zainstalowania nie oznacza, że nie można lub nie należy mieć natywnej aplikacji na Androida. Jednak to kolejny sposób na przeniesienie internetu do Androida.

Przyjrzyjmy się kilku funkcjom, dzięki którym Twoja aplikacja internetowa z możliwością zainstalowania poczuje się w Androidzie jak u siebie.

Chcieliśmy umożliwić użytkownikom instalowanie witryn, które ich najbardziej interesują. Pierwszym krokiem było usunięcie modułu obsługi pobierania przez skrypt service worker, który jest wymagany do instalacji na Androidzie i w Chrome. Dodatkowo Chrome nie będzie uruchamiać skryptu service worker, jeśli moduł pobierania jest pusty. Chrome będzie uruchamiać eksperymenty, aby rozszerzyć dostęp użytkowników do instalacji. Zwróć na nie uwagę i przekaż nam swoją opinię.

Deweloperzy muszą spełnić wymóg dotyczący skryptu service worker, by interfejs użytkownika był zgodny z innymi aplikacjami na Androida. Można ich użyć do utworzenia strony z informacją, że nie może korzystać z aplikacji w trybie offline.

Zdaliśmy sobie sprawę, że możemy odciążyć deweloperów i zadbać o to, żeby te aplikacje od samego początku zapewniały wygodę korzystania z nich. Dlatego dodaliśmy w Chrome domyślną funkcję offline, która wyświetla ekran z ikoną aplikacji, dzięki czemu deweloperzy wiedzą, że są offline.

Oczywiście nadal dostępny jest interfejs Service Worker API, który pozwala tworzyć niestandardowe środowiska offline i wdrażać inne funkcje, takie jak zapisywanie w pamięci podręcznej, aby zwiększyć wydajność.

Inne funkcje, które zapewniają dopracowaną obsługę aplikacji internetowych na Androidzie, to bogatszy interfejs instalacji. Jeśli dodasz do pliku manifestu internetowego pola description i screenshots, użytkownicy będą mogli zainstalować aplikację, która będzie bardziej zbliżona do tego, co wyświetla się w sklepach z aplikacjami, aby opisać Twoją aplikację.

Korzystamy też ze skrótów. Jeśli dodasz tablicę o nazwie shortcuts, która opisuje zestaw szybkich działań, które użytkownicy często wykonują w Twojej aplikacji, będą oni mogli je zobaczyć, przytrzymując ikonę aplikacji.

Dzięki interfejsom API Web Share i Web Share Target Twoja aplikacja może wchodzić w interakcje z innymi aplikacjami, tak jak każdą inną aplikację platformy. Aplikacja będzie dostępna w arkuszach udostępniania i będzie mogła udostępniać oraz odbierać zdjęcia, SMS-y i inne pliki.

Możesz zapoznać się z prezentacją I/O zatytułowaną „The Web: Your Platform for Development” (Sieć: Twoja platforma rozwoju), aby dowiedzieć się więcej o tym, jak firmy korzystają z tych technologii.

zaufana aktywność internetowa

Innym sposobem na przeniesienie dostępu do internetu na Androida jest korzystanie z zaufanej aktywności w internecie (TWA).

TWA to najlepszy sposób na wyświetlanie własnych treści internetowych na pełnym ekranie w Twojej aplikacji. To idealne rozwiązanie dla deweloperów, którzy chcą dodać swoją aplikację internetową jako aplikację na Androida lub wykorzystać swoją stronę internetową jako jej element.

TWA wydaje się, że jest to ściśle związane z PWA, ale tak nie jest. Tak. Korzystając z TWA, możesz opublikować swoją aplikację internetową z możliwością zainstalowania w Google Play, ale możesz też utworzyć pojedynczą aktywność w internecie i dodać ją do aplikacji na Androida.

Zaufana aktywność internetowa jest renderowana przez przeglądarkę użytkownika dokładnie tak samo jak użytkownik zobaczy ją w przeglądarce. Jedyna różnica jest taka, że reklamy są wyświetlane w trybie pełnoekranowym i nie widać paska adresu URL. Oznacza to, że obsługują one wszystkie funkcje platformy internetowej i interfejsy API obsługiwane przez przeglądarkę, która je obsługuje.

Oto kilka zalet pakietu aplikacji internetowej TWA:

Publikowanie w Google Play, co zapewnia aplikacji dostęp do widoczności i dystrybucji w Google Play. Dostęp do interfejsu Play Billing API, który umożliwia deweloperom zarządzanie sprzedażą produktów cyfrowych w aplikacjach, co ułatwia konfigurowanie produktów, wyprzedaży, subskrypcji i innych elementów. Przekazywanie powiadomień i uprawnień geolokalizacji do aplikacji na Androida zamiast witryny.

Przeczytaj ten artykuł, aby dowiedzieć się więcej o tym, jak firma ContactDirect dzięki wykorzystaniu TWA przyniosła użytkownikom korzyści i potroiła współczynniki konwersji.

Podsumowanie

Jak zapewne wiesz, dostępnych jest wiele różnych opcji umieszczania treści internetowych w aplikacji i wszystkie te opcje są stale udoskonalane.