Używanie PWA w aplikacji na Androida

Progresywne aplikacje internetowe (PWA) to aplikacje internetowe, które korzystają z funkcji podobnych do aplikacji, aby zapewnić użytkownikom szybkie, niezawodne i atrakcyjne wrażenia z korzystania z internetu.

Internet ma niesamowity zasięg i oferuje skuteczne sposoby odkrywania nowych treści. Użytkownicy są jednak przyzwyczajeni do wyszukiwania aplikacji w sklepie swojego systemu operacyjnego. W wielu przypadkach ci użytkownicy już znają markę lub usługę, której szukają, i wykazują oni wysoki poziom intencji, co przekłada się na wyższy niż przeciętny wskaźnik zaangażowania.

Sklep Play to sklep z aplikacjami na Androida, a deweloperzy często chcą otwierać swoje progresywne aplikacje internetowe w swoich aplikacjach na Androida.

Zaufane działanie w internecie to otwarty standard, który umożliwia przeglądarkom udostępnianie kontenera w pełni zgodnego z platformą internetową, który renderuje aplikacje PWA w aplikacji na Androida. Ta funkcja jest dostępna w Chrome, a w tym momencie jest też rozwijana w Firefox Nightly.

Dotychczasowe rozwiązania były ograniczone

W aplikacji na Androida można było zawsze stosować technologie takie jak Android WebView czy frameworki takie jak Cordova.

Ograniczenie w przypadku komponentu WebView na Androidzie polega na tym, że nie powinien on stanowić zamiennika przeglądarki. WebView na Androida to narzędzie dla programistów do korzystania z interfejsu internetowego w aplikacji na Androida. Nie zapewnia ono pełnego dostępu do funkcji nowoczesnych platform internetowych, takich jak wybór kontaktów czy system plików.

Cordova powstała, by uzupełnić mankamenty WebView, ale interfejsy API zostały ograniczone do środowiska Cordova. Oznacza to, że musisz utrzymywać dodatkową bazę kodu na potrzeby korzystania z interfejsów API Cordova w aplikacji na Androida, oddzielnie od PWA w otwartej sieci.

Ponadto funkcja znajdowania funkcji często nie działa zgodnie z oczekiwaniami, a problemy ze zgodnością między wersjami Androida i OEM-ami również mogą stanowić problem. Korzystając z jednego z tych rozwiązań, deweloperzy muszą stosować dodatkowe procesy kontroli jakości i ponosić dodatkowe koszty rozwoju, aby wykrywać i tworzyć obejścia.

Zaufana aktywność internetowa to nowy kontener dla aplikacji internetowych na Androida

Deweloperzy mogą teraz używać Trusted Web Activity jako kontenera, aby uwzględnić PWA jako aktywność uruchamiania aplikacji na Androida. Technologia wykorzystuje przeglądarkę do renderowania PWA na pełnym ekranie, co zapewnia jej tę samą zgodność z funkcjami i interfejsami API platformy internetowej co przeglądarka. Dostępne są też narzędzia open source, które jeszcze bardziej ułatwiają implementację aplikacji na Androida za pomocą zaufanej aktywności w internecie.

Kolejną zaletą, której nie mają inne rozwiązania, jest to, że kontener współdzieli miejsce na dane z przeglądarką. Stany logowania i preferencje użytkowników są współdzielone przez różne usługi.

Zgodność z przeglądarką

Ta funkcja jest dostępna w Chrome od wersji 75, a w wersji nocnej jest ona zaimplementowana w Firefoksie.

Kryteria jakości

Deweloperzy stron internetowych powinni używać zaufanej aktywności w internecie, gdy chcą uwzględnić treści internetowe w aplikacji na Androida.

Treści internetowe w zaufanej aktywności internetowej muszą spełniać kryteria możliwości instalacji aplikacji PWA.

Dodatkowo, aby zapewnić działanie zgodne z oczekiwaniami użytkowników aplikacji na Androida, w Chrome 86 wprowadzono zmianę, w której nieobsługa tych scenariuszy jest uznawana za awarię:

  • Nie udało się zweryfikować linków cyfrowych zasobów podczas uruchamiania aplikacji.
  • Niemożność zwrócenia odpowiedzi HTTP 200 dla żądania zasobu sieci offline.
  • Żądanie dotyczące nawigacji zwracające błąd HTTP 404 lub 5xx.

Gdy w ramach zaufanej aktywności w internecie wystąpi jeden z tych scenariuszy, powoduje on widoczny dla użytkownika zanik aplikacji na Androida. Zapoznaj się ze wskazówkami dotyczącymi obsługi takich scenariuszy w mechanizmie Service Worker.

Aplikacja musi też spełniać dodatkowe kryteria dotyczące Androida, takie jak zgodność z zasadami.

Zrzut ekranu przedstawiający wynik Lighthouse dla aplikacji AirHorn z plakietką PWA i wynikiem wydajności 100.
Odznaka PWA w Lighthouse wskazuje, czy Twoja aplikacja PWA spełnia kryteria instalacyjne.

Narzędzia

Deweloperzy internetowi, którzy chcą korzystać z zaufanej aktywności w internecie, nie muszą uczyć się nowych technologii ani interfejsów API, aby przekształcić swoją PWA w aplikację na Androida. Bubblewrap i PWABuilder udostępniają narzędzia dla programistów w formie biblioteki, interfejsu wiersza poleceń (CLI) i graficznego interfejsu użytkownika (GUI).

Folia bąbelkowa

Projekt Bubblewrap generuje aplikacje na Androida w postaci biblioteki NodeJS i interfejsu wiersza poleceń (CLI).

Rozpoczęcie nowego projektu polega na uruchomieniu narzędzia i przesłaniu adresu URL pliku manifestu internetowego:

npx @bubblewrap/cli init --manifest=https://pwa-directory.appspot.com/manifest.json

Narzędzie może też skompilować projekt, a wykonanie podanego niżej polecenia spowoduje wygenerowanie aplikacji na Androida gotowej do przesłania do Sklepu Play:

npx @bubblewrap/cli build

Po wykonaniu tego polecenia w katalogu głównym projektu będzie dostępny plik o nazwie app-release-signed.apk. To plik, który zostanie przesłany do Sklepu Play.

PWABuilder

PWABuilder pomaga programistom przekształcać witryny w progresywne aplikacje internetowe. Narzędzie to integruje się też z Bubblewrap, aby zapewnić interfejs graficzny do zawijania aplikacji PWA w aplikację na Androida. Zespół PWABuilder opracował artykuł na blogu, w którym wyjaśnia, jak wygenerować aplikację na Androida za pomocą tego narzędzia.

Weryfikowanie własności PWA w aplikacji na Androida

Deweloper tworzący świetną progresywną aplikację internetową nie chciałby, aby inny deweloper wykorzystywał ją do tworzenia aplikacji na Androida bez jego zgody. Aby tak się nie stało, musisz sparować aplikację na Androida z progresywną aplikacją internetową za pomocą narzędzia Digital Asset Links.

Bubblewrap i PWABuilder zajmują się niezbędną konfiguracją aplikacji na Androida, ale pozostaje jeszcze ostatni krok, czyli dodanie do PWA pliku assetlinks.json.

Aby wygenerować ten plik, deweloperzy potrzebują podpisu SHA-256 klucza użytego do podpisania pliku APK, który jest pobierany przez użytkowników.

Klucz można wygenerować na wiele sposobów, a najłatwiejszym sposobem znalezienia klucza, którym podpisano plik APK udostępniany użytkownikom końcowym, jest pobranie go ze Sklepu Play.

Aby uniknąć wyświetlania użytkownikom nieprawidłowej aplikacji, wdrożyć aplikację na zamkniętym kanale testowym, zainstalować ją na urządzeniu testowym, a następnie użyć narzędzia Peter's Asset Link do wygenerowania prawidłowego pliku assetlinks.json dla aplikacji. Wygenerowany plik assetlinks.json umieść na /.well-known/assetlinks.json w domenie, która jest sprawdzana.

Co dalej

Progresywna aplikacja internetowa to wysokiej jakości aplikacja internetowa. Zaufana aktywność internetowa to nowy sposób otwierania tych wysokiej jakości treści z aplikacji na Androida, które spełniają minimalne kryteria jakości.

Jeśli dopiero zaczynasz korzystać z progresywnych aplikacji internetowych, przeczytaj nasze wskazówki dotyczące tworzenia świetnych aplikacji PWA. Deweloperzy, którzy mają już PWA, mogą sprawdzić, czy spełnia ona kryteria jakości, używając Lighthouse.

Następnie wygeneruj aplikację na Androida za pomocą Bubblewrap lub PWABuilder, prześlij aplikację na zamknięty kanał testowy w Sklepie Play i sparuj ją z PWA za pomocą narzędzia do łączenia zasobów Petera.

Na koniec przenieś aplikację z kanału testu zamkniętego na kanał produkcyjny.