Gdy użytkownik doda Twoją progresywną aplikację internetową do ekranu głównego na Androidzie, Chrome automatycznie wygeneruje dla Ciebie plik APK, który czasami nazywamy WebAPK. Dzięki instalacji za pomocą pliku APK Twoja aplikacja może się wyświetlać w menu z aplikacjami i w ustawieniach aplikacji na Androidzie oraz rejestrować zestaw filtrów intencji.
Instalowanie PWA na Androidzie to coś więcej niż tylko dodanie progresywnej aplikacji internetowej do ekranu głównego użytkownika. Chrome automatycznie generuje i instaluje specjalny plik APK Twojej aplikacji. Czasami nazywamy go WebAPK. Dzięki instalacji za pomocą pliku APK Twoja aplikacja może się wyświetlać w menu z aplikacjami i w ustawieniach aplikacji na Androidzie oraz rejestrować zestaw filtrów intencji.
Aby wygenerować WebAPK, Chrome sprawdza manifest aplikacji internetowej i inne metadane. Gdy wykryje aktualizację manifestu, będzie musiał wygenerować nowy plik APK.
Filtry intencji na Androidzie
Gdy progresywna aplikacja internetowa jest instalowana na Androidzie, rejestruje zestaw filtrów intencji dla wszystkich adresów URL w zakresie aplikacji. Gdy użytkownik kliknie link, który znajduje się w zakresie aplikacji, otworzy się aplikacja, a nie karta przeglądarki.
Oto fragment pliku manifest.json:
"start_url": "/",
"display": "standalone",
Gdy aplikacja internetowa, która go używa, zostanie uruchomiona z menu z aplikacjami, otworzy się jako samodzielna aplikacja bez interfejsu przeglądarki pod adresem https://example.com/.
WebAPK będzie zawierać te filtry intencji:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/" />
</intent-filter>
Jeśli użytkownik kliknie link w aplikacji instalowanej do https://example.com/read, zostanie on przechwycony przez intencję i otwarty w progresywnej aplikacji internetowej.
Ograniczanie filtrów intencji za pomocą właściwości scope
Jeśli nie chcesz, aby Twoja progresywna aplikacja internetowa obsługiwała wszystkie adresy URL w Twojej witrynie,
możesz dodać właściwość scope do
manifestu aplikacji internetowej. Właściwość scope informuje Androida, aby otwierał aplikację internetową tylko wtedy, gdy adres URL pasuje do origin + scope. Dzięki temu możesz kontrolować, które adresy URL będą obsługiwane przez Twoją aplikację, a które powinny być otwierane w przeglądarce.
Jest to przydatne, gdy masz aplikację i inne treści niezwiązane z aplikacją w tej samej domenie.
Oto fragment pliku manifest.json:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
Gdy aplikacja zostanie uruchomiona z menu z aplikacjami, otworzy się jako samodzielna aplikacja bez interfejsu przeglądarki pod adresem https://example.com/app/.
Podobnie jak wcześniej wygenerowany WebAPK będzie zawierać filtr intencji, ale z innym atrybutem android:pathPrefix w pliku AndroidManifest.xml APK:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/app/" />
</intent-filter>
Oto kilka przykładów:
https://example.com/app/ – w /app/
https://example.com/app/read/book – w /app/
https://example.com/help/ – nie w /app/
https://example.com/about/ – nie w /app/
Więcej informacji o scope, o tym, co się stanie, jeśli jej nie ustawisz, oraz o tym, jak możesz jej użyć do zdefiniowania
zakresu aplikacji, znajdziesz w artykule
scope.
Zarządzanie uprawnieniami
Uprawnienia działają tak samo jak w przypadku innych aplikacji internetowych i nie można o nie prosić podczas instalacji. Zamiast tego należy o nie prosić w czasie działania aplikacji, najlepiej tylko wtedy, gdy są naprawdę potrzebne. Na przykład nie proś o uprawnienia dostępu do aparatu przy pierwszym wczytaniu, ale poczekaj, aż użytkownik spróbuje zrobić zdjęcie.
Zarządzanie pamięcią i stanem aplikacji
Mimo że progresywna aplikacja internetowa jest instalowana za pomocą pliku APK, Chrome używa bieżącego profilu do przechowywania danych i nie będą one odseparowane. Umożliwia to wspólne korzystanie z przeglądarki i aplikacji instalowanej. Pliki cookie są udostępniane i aktywne, dostępna jest pamięć po stronie klienta, a skrypt service worker jest zainstalowany i gotowy do użycia.
Aktualizowanie WebAPK
Informacje o tym, jak aktualizowany jest WebAPK, zostały przeniesione do artykułu Jak Chrome obsługuje aktualizacje manifestu aplikacji internetowej.
Najczęstsze pytania
Jakie ikony są używane do generowania ekranu powitalnego?
Zalecamy podanie co najmniej 2 rozmiarów ikon na ekranie powitalnym: 192 i 512 pikseli. Otrzymaliśmy od Ciebie informację, że ikony na ekranie powitalnym są zbyt małe. WebAPK wygenerowane w Chrome 71 lub nowszym będą wyświetlać większą ikonę na ekranie powitalnym. Nie musisz nic robić, o ile podasz zalecane ikony.
Co się stanie, jeśli użytkownik zainstalował już natywną aplikację witryny?
Podobnie jak w przypadku dodawania do ekranu głównego użytkownicy będą mogli dodawać witrynę niezależnie od aplikacji natywnych. Jeśli spodziewasz się, że użytkownicy mogą zainstalować obie aplikacje, zalecamy odróżnienie ikony lub nazwy witryny od aplikacji natywnej.
Czy pamięć zainstalowanej witryny zostanie wyczyszczona, jeśli użytkownik wyczyści pamięć podręczną Chrome?
Tak.
Czy aplikacja zostanie ponownie zainstalowana, gdy kupię nowe urządzenie?
Obecnie nie, ale uważamy, że jest to ważny obszar, i szukamy sposobów, aby to działało.
Jak są obsługiwane uprawnienia? Czy zobaczę prośbę Chrome czy Androida?
Uprawnienia będą nadal zarządzane przez Chrome. Użytkownicy będą widzieć prośby Chrome o przyznanie uprawnień i będą mogli je edytować w ustawieniach Chrome.
Na jakich wersjach Androida będzie to działać?
Progresywne aplikacje internetowe można instalować na wszystkich wersjach Androida, na których działa Chrome na Androida, czyli na Jelly Bean i nowszych.
Czy używa WebView?
Nie, witryna otwiera się w wersji Chrome, z której użytkownik dodał witrynę.
Czy możemy przesłać utworzone pliki APK do Sklepu Play?
Nie. Jeśli chcesz przesłać własny plik APK, zapoznaj się z artykułem Aktywności internetowe zaufanych witryn.
Czy są one wymienione w Sklepie Play?
Nie. Jeśli chcesz przesłać własny plik APK, aby umieścić go w Sklepie Play, zapoznaj się z artykułem Aktywności internetowe zaufanych witryn.
Jestem deweloperem innej przeglądarki na Androida. Czy mogę mieć ten bezproblemowy proces instalacji?
Pracujemy nad tym. Zależy nam na tym, aby ta funkcja była dostępna we wszystkich przeglądarkach na Androida, i wkrótce podamy więcej szczegółów.