Używanie PWA w aplikacji na Androida

Uruchamianie aplikacji PWA w aplikacji na Androida

Progresywne aplikacje internetowe (PWA) to aplikacje internetowe, które wykorzystują funkcje podobne do aplikacji, aby zapewnić wysoką jakość, szybkość, niezawodność i zaangażowanie.

Internet ma ogromny zasięg i oferuje użytkownikom wiele sposobów na odkrywanie nowych treści. Użytkownicy są jednak przyzwyczajeni do wyszukiwania aplikacji w sklepie z systemem operacyjnym. Użytkownicy ci są w wielu przypadkach już zaznajomieni z marką lub usługą, której szukają, i wykazują wysoki poziom intencji, co przekłada się na wyższe niż przeciętne wskaźniki zaangażowania.

Sklep Play to platforma z aplikacjami na Androida, a deweloperzy często chcą otwierać progresywne aplikacje internetowe z poziomu aplikacji na Androida.

Zaufana aktywność internetowa to otwarty standard, który umożliwia przeglądarkom udostępnianie w pełni zgodnego z platformą internetową kontenera, który renderuje progresywne aplikacje internetowe w aplikacji na Androida. Ta funkcja jest dostępna w Chrome i jest w trakcie opracowywania w Firefox Nightly.

Istniejące rozwiązania były ograniczone

Zawsze można było uwzględniać w aplikacji na Androida funkcje internetowe, korzystając z technologii takich jak Android WebView lub platform takich jak Cordova.

Ograniczeniem komponentu WebView Androida jest to, że nie jest on przeznaczony do zastępowania przeglądarki. Android WebView to narzędzie dla programistów, które umożliwia korzystanie z interfejsu internetowego w aplikacji na Androida. Nie zapewnia ono pełnego dostępu do nowoczesnych funkcji platformy internetowej, takich jak selektor kontaktów czy system plików, między innymi.

Cordova została zaprojektowana, aby uzupełniać braki interfejsu WebView, ale interfejsy API są wtedy ograniczone do środowiska Cordova. Oznacza to, że musisz utrzymywać dodatkową bazę kodu do korzystania z interfejsów API Cordova w aplikacji na Androida, oddzielną od PWA w otwartej sieci.

Ponadto wykrywanie funkcji często nie działa zgodnie z oczekiwaniami, a problemem mogą być też problemy ze zgodnością między wersjami Androida a producentami OEM. W przypadku korzystania z jednego z tych rozwiązań deweloperzy potrzebują dodatkowych procesów zapewniania jakości i ponoszą dodatkowe koszty rozwoju, aby wykrywać problemy i tworzyć obejścia.

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

Deweloperzy mogą teraz używać zaufanej aktywności internetowej jako kontenera, aby uwzględnić PWA jako aktywność uruchamiającą aplikację na Androida. Technologia ta wykorzystuje przeglądarkę do renderowania PWA na pełnym ekranie, dzięki czemu zaufana aktywność internetowa ma taką samą zgodność z funkcjami i interfejsami API platformy internetowej jak przeglądarka bazowa. Dostępne są też narzędzia typu open source, które ułatwiają wdrażanie aplikacji na Androida za pomocą zaufanej aktywności internetowej.

Kolejną zaletą niedostępną w innych rozwiązaniach jest to, że kontener współdzieli miejsce na dane z przeglądarką. Stany logowania i preferencje użytkowników są płynnie udostępniane w różnych usługach.

Zgodność z przeglądarką

Funkcja jest dostępna w Chrome od wersji 75, a Firefox wdrożył ją w wersji nocnej.

Kryteria jakości

Programiści stron internetowych powinni używać zaufanej aktywności internetowej, gdy chcą umieścić treści z internetu w aplikacji na Androida.

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

Aby dopasować działanie do oczekiwań użytkowników aplikacji na Androida, w Chrome 86 wprowadziliśmy zmianę, zgodnie z którą nieobsługiwanie tych scenariuszy jest traktowane jako awaria:

  • Nie udało się zweryfikować linków do zasobów cyfrowych podczas uruchamiania aplikacji.
  • Nie udało się zwrócić kodu HTTP 200 w przypadku żądania zasobu sieciowego offline.
  • Żądanie nawigacji zwracające błąd HTTP 404 lub 5xx”.

Gdy w zaufanej aktywności internetowej wystąpi jeden z tych scenariuszy, spowoduje to widoczne dla użytkownika awaryjne zamknięcie aplikacji na Androida. Zapoznaj się z wskazówkami dotyczącymi obsługi tych scenariuszy w skrypcie 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 odznaką PWA i wynikiem wydajności 100.
Odznaka PWA w Lighthouse informuje, czy Twoja aplikacja PWA spełnia kryteria instalacji.

Narzędzia

Deweloperzy stron internetowych, którzy chcą korzystać z zaufanej aktywności internetowej, nie muszą poznawać nowych technologii ani interfejsów API, aby przekształcić swoją aplikację PWA w aplikację na Androida. Bubblewrap i PWABuilder zapewniają programistom narzędzia w postaci 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).

Aby zainicjować nowy projekt, uruchom narzędzie i przekaż adres URL pliku manifestu internetowego:

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

Narzędzie może też skompilować projekt. Uruchomienie poniższego polecenia spowoduje wygenerowanie aplikacji na Androida gotowej do przesłania do Sklepu Play:

npx @bubblewrap/cli build

Po uruchomieniu 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 deweloperom przekształcać istniejące witryny w progresywne aplikacje internetowe. Jest też zintegrowany z Bubblewrap, aby udostępniać graficzny interfejs użytkownika do przekształcania tych progresywnych aplikacji internetowych w aplikacje na Androida. Zespół PWABuilder przygotował świetny post na blogu, w którym wyjaśnia, jak wygenerować aplikację na Androida za pomocą tego narzędzia.

Weryfikowanie własności progresywnej aplikacji internetowej w aplikacji na Androida

Deweloper tworzący świetną progresywną aplikację internetową nie chce, aby inny deweloper tworzył na jej podstawie aplikację na Androida bez jego zgody. Aby temu zapobiec, aplikację na Androida należy sparować z progresywną aplikacją internetową za pomocą narzędzia o nazwie Digital Asset Links.

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

Aby wygenerować ten plik, deweloperzy potrzebują podpisu SHA-256 klucza używanego do podpisywania pliku APK pobieranego przez użytkowników.

Klucz można wygenerować na wiele sposobów, a najłatwiej jest sprawdzić, który klucz podpisał plik APK dostarczany użytkownikom, pobierając go ze Sklepu Play.

Aby uniknąć wyświetlania użytkownikom uszkodzonej aplikacji, wdróż ją na kanale testów zamkniętych, zainstaluj na urządzeniu testowym, a następnie użyj narzędzia Peter's Asset Link Tool, aby wygenerować prawidłowy plik assetlinks.json. Udostępnij wygenerowany plik assetlinks.json w lokalizacji /.well-known/assetlinks.json w domenie, która jest weryfikowana.

Co dalej

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

Jeśli dopiero zaczynasz korzystać z progresywnych aplikacji internetowych, przeczytaj nasz przewodnik po tworzeniu świetnych aplikacji PWA. Deweloperzy, którzy mają już PWA, mogą użyć Lighthouse, aby sprawdzić, czy spełnia ona kryteria jakości.

Następnie użyj narzędzia Bubblewrap lub PWABuilder, aby wygenerować aplikację na Androida, prześlij ją na kanał testu zamkniętego w Sklepie Play i sparuj ją z PWA za pomocą narzędzia Peter's Asset Link Tool.

Na koniec przenieś aplikację z kanału testu zamkniętego do wersji produkcyjnej.