Pakiety WebAPK na Androidzie

Gdy użytkownik doda progresywną aplikację internetową do ekranu głównego na urządzeniu z Androidem, Chrome automatycznie wygeneruje dla Ciebie pakiet APK, który czasem nazywamy WebAPK. Aplikacja zainstalowana za pomocą pliku APK wpływa na wyświetlanie jej w menu z aplikacjami w ustawieniach Androida i rejestrowanie zestawu filtrów intencji.

Zainstalowanie 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 określamy go jako WebAPK. Instalacja za pomocą pliku APK sprawia, że aplikacja pojawi się w Menu z aplikacjami w ustawieniach aplikacji na Androida i będzie rejestrować zestaw filtrów intencji.

Aby wygenerować pakiet WebAPK, Chrome sprawdza plik manifestu aplikacji internetowej i inne metadane. Po wykryciu aktualizacji pliku manifestu Chrome musi wygenerować nowy plik APK.

Filtry intencji Androida

Gdy progresywna aplikacja internetowa jest zainstalowana na Androidzie, rejestruje zestaw filtrów intencji dla wszystkich adresów URL w zakresie aplikacji. Gdy użytkownik kliknie link znajdujący się w zakresie aplikacji, aplikacja się otworzy, a nie na karcie przeglądarki.

Przyjrzyjmy się temu fragmentowi manifest.json:

"start_url": "/",
"display": "standalone",

Gdy aplikacja internetowa, która z niej korzysta, zostanie uruchomiona z poziomu menu z aplikacjami, będzie otwierana https://example.com/ jako samodzielna aplikacja, bez przeglądarki w Chrome.

WebAPK zawierałby 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 w zainstalowanej aplikacji link do strony https://example.com/read, zostanie to wychwycone przez intencję i otworzy się w progresywnej aplikacji internetowej.

Używanie scope do ograniczania filtrów intencji

Jeśli nie chcesz, aby progresywna aplikacja internetowa obsługiwała wszystkie adresy URL w Twojej witrynie, możesz dodać usługę scope do pliku manifestu aplikacji internetowej. Właściwość scope informuje Androida, aby otwierał Twoją aplikację internetową tylko wtedy, gdy adres URL pasuje do origin + scope. Daje Ci kontrolę nad tym, które adresy URL będą obsługiwane przez aplikację i które mają być otwierane w przeglądarce. Jest to przydatne, gdy masz aplikację i inne treści spoza aplikacji w tej samej domenie.

Przyjrzyjmy się temu fragmentowi manifest.json:

"scope": "/app/",
"start_url": "/app/",
"display": "standalone",

Po uruchomieniu z menu z aplikacjami otwiera się https://example.com/app/ jako samodzielna aplikacja, bez przeglądarki Chrome.

Tak jak wcześniej wygenerowany plik WebAPK będzie zawierał filtr intencji, ale z innym atrybutem android:pathPrefix w elemencie AndroidManifest.xml pliku 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>

Przyjrzyjmy się kilku przykładom:

Tak

https://example.com/app/ – w ciągu /app/

Tak

https://example.com/app/read/book – w ciągu /app/

Nie

https://example.com/help/ – nie w języku: /app/

Nie

https://example.com/about/ – nie w języku: /app/

W sekcji scope znajdziesz więcej informacji o ustawieniu scope, a także o tym, co się stanie, jeśli go nie ustawisz, i o tym, jak za jego pomocą określić zakres aplikacji.

Zarządzanie uprawnieniami

Uprawnienia działają tak samo jak inne aplikacje internetowe i nie można ich poprosić podczas instalacji. Żądania muszą być wysyłane w czasie działania, najlepiej tylko wtedy, gdy naprawdę są potrzebne. Nie pytaj na przykład o uprawnienia do aparatu przy pierwszym wczytaniu, tylko poczekaj, aż użytkownik spróbuje zrobić zdjęcie.

Zarządzanie miejscem na dane i stanem aplikacji

Mimo że progresywna aplikacja internetowa jest instalowana za pomocą pliku APK, Chrome zapisuje wszelkie dane w bieżącym profilu i nie są one oddzielane. Umożliwia to wspólną pracę przeglądarki z zainstalowaną aplikacją. Pliki cookie są udostępniane i aktywne, dostępna jest pamięć po stronie klienta, a skrypt service jest zainstalowany i gotowy do użycia.

Aktualizowanie pakietu WebAPK

Informacje o aktualizowaniu WebAPK zostały przeniesione do sekcji Jak Chrome obsługuje aktualizacje pliku manifestu aplikacji internetowej.

Najczęstsze pytania

Jakie ikony służą do generowania ekranu powitalnego? :
Zalecamy dodanie co najmniej 2 ikon: 192 piksele i 512 pikseli do ekranu powitalnego. Usłyszeliśmy od Was, że ikony na ekranie powitalnym są za małe. Pakiety WebAPK wygenerowane w Chrome 71 lub nowszej będą mieć większą ikonę na ekranie powitalnym. Nie musisz nic robić, jeśli dostępne są zalecane ikony.
Co się stanie, jeśli użytkownik zainstalował już aplikację natywną dla witryny?
Podobnie jak teraz na ekranie głównym, użytkownicy będą mogli dodawać witrynę niezależnie od aplikacji natywnych. Jeśli spodziewasz się, że użytkownicy mogą zainstalować oba, zalecamy odróżnienie ikony lub nazwy witryny od aplikacji natywnej.
Czy pamięć zainstalowanej witryny zostanie wyczyszczona, gdy użytkownik wyczyści pamięć podręczną przeglądarki Chrome?
Tak.
Czy moja aplikacja zostanie ponownie zainstalowana po zmianie urządzenia na nowe?
Obecnie nie, ale uważamy, że to ważny obszar i szukamy sposobów na osiągnięcie sukcesu.
Jak są obsługiwane uprawnienia? Czy zobaczę prompt w Chrome czy na urządzeniu z Androidem?
Uprawnienia nadal będą zarządzane w Chrome. Użytkownicy zobaczą monity Chrome o przyznanie uprawnień i będą mogli edytować je w ustawieniach Chrome.
Na których 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, w szczególności Jelly Bean i nowszych.
Czy jest to komponent WebView?
Nie. Strona otwiera się w wersji Chrome, z której użytkownik ją dodał.
Czy do Sklepu Play można przesłać utworzone pliki APK?
Nie. Jeśli chcesz przesłać własny pakiet APK, zajrzyj do Trusted Web Activities.
Czy są one dostępne w Sklepie Play?
Nie. Jeśli chcesz przesłać własny pakiet APK do umieszczenia w Sklepie Play, zajrzyj do Trusted Web Activities.
Jestem deweloperem innej przeglądarki na Androida. Czy mogę uzyskać bezproblemowy proces instalacji? :
Pracujemy nad tym. Staramy się udostępnić tę funkcję we wszystkich przeglądarkach na Androidzie. Wkrótce podamy więcej szczegółów.