Pakiety WebAPK na Androidzie

Gdy użytkownik doda Twoją progresywną aplikację internetową do ekranu głównego na Androidzie, Chrome automatycznie wygeneruje plik APK, który czasami nazywamy plikiem WebAPK. Instalacja za pomocą pliku APK umożliwia wyświetlanie aplikacji w programie uruchamiającym, w ustawieniach aplikacji na Androidzie oraz rejestrowanie zestawu filtrów intencji.

Instalowanie PWA na Androidzie to coś więcej niż dodanie progresywnej aplikacji internetowej do ekranu głównego użytkownika. Chrome automatycznie generuje i instaluje specjalny plik APK Twojej aplikacji. Czasami nazywamy go WebAPK. Instalacja za pomocą pliku APK umożliwia wyświetlanie aplikacji w programie uruchamiającym, w ustawieniach aplikacji na Androidzie oraz rejestrowanie zestawu filtrów intencji.

Aby wygenerować WebAPK, Chrome sprawdza plik z manifestem aplikacji internetowej i inne metadane. Gdy wykryjemy aktualizację pliku manifestu, Chrome będzie musiał wygenerować nowy plik APK.

Filtry intencji na Androida

Gdy progresywna aplikacja internetowa zostanie zainstalowana na urządzeniu z Androidem, zarejestruje zestaw filtrów intencji dla wszystkich adresów URL w zakresie aplikacji. Gdy użytkownik kliknie link, który znajduje się w zakresie aplikacji, aplikacja otworzy się, a nie otworzy się w karcie przeglądarki.

Rozważ tę część manifest.json:

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

Gdy aplikacja internetowa korzystająca z tego interfejsu zostanie uruchomiona z menu aplikacji, otworzy się jako samodzielna aplikacja bez żadnego interfejsu przeglądarki.

Plik WebAPK 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 w zainstalowanej aplikacji link do https://example.com/read, zostanie on przechwycony przez intencję i otwarty w aplikacji Progressive Web.

Używanie scope do ograniczania filtrów intencji

Jeśli nie chcesz, aby aplikacja Progressive Web obsługiwała wszystkie adresy URL w Twojej witrynie, możesz dodać do pliku manifestu aplikacji internetowej właściwość scope. Właściwość scope informuje Androida, aby otwierał Twoją aplikację internetową tylko wtedy, gdy adres URL jest zgodny z wartością origin + scope. Dzięki temu możesz kontrolować, które adresy URL będą obsługiwane przez aplikację, a które powinny być otwierane w przeglądarce. Jest to przydatne, gdy aplikacja i inne treści niebędące aplikacjami znajdują się w tej samej domenie.

Weź pod uwagę ten fragment manifest.json:

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

Po uruchomieniu z menu z aplikacjami https://example.com/app/ jako samodzielna aplikacja bez elementów przeglądarki.

Podobnie jak wcześniej wygenerowany plik WebAPK będzie zawierał filtr intencji, ale z innym atrybutem android:pathPrefix w sekcji 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: /app/

Tak

https://example.com/app/read/book w: /app/

Nie

https://example.com/help/ – nie w /app/

Nie

https://example.com/about/ – nie w /app/

W sekcji scope znajdziesz więcej informacji o tym, co się dzieje, gdy zasada scope nie jest skonfigurowana, i jak za jej pomocą określić zakres aplikacji.

Zarządzanie uprawnieniami

Uprawnienia działają tak samo jak w przypadku innych aplikacji internetowych i nie można ich żądać w momencie instalacji. Zamiast tego należy je żądać w czasie wykonywania, najlepiej tylko wtedy, gdy są naprawdę potrzebne. Na przykład nie proś o dostęp do aparatu przy pierwszym wczytaniu, ale 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 używa bieżącego profilu do przechowywania wszystkich danych i nie będzie ich oddzielać. Umożliwia to udostępnianie danych między przeglądarką a zainstalowaną aplikacją. Pliki cookie są udostępniane i aktywne, wszystkie pamięci po stronie klienta są dostępne, a serwer worker jest zainstalowany i gotowy do działania.

Aktualizowanie pliku WebAPK

Informacje o tym, jak aktualizować plik WebAPK, zostały przeniesione do artykułu Jak Chrome obsługuje aktualizacje pliku manifestu aplikacji internetowej.

Najczęstsze pytania

Jakie ikony są używane do generowania ekranu powitalnego? :
Zalecamy przesłanie co najmniej 2 ikon: 192 pikseli i 512 pikseli na ekranie powitalnym. Otrzymaliśmy od Ciebie informację, że ikony na ekranie powitalnym są za małe. Aplikacje WebAPK wygenerowane w Chrome 71 lub nowszej wersji będą wyświetlać większą ikonę na ekranie powitalnym. Nie musisz nic robić, o ile tylko używasz zalecanych ikon.
Co się stanie, jeśli użytkownik ma już zainstalowaną natywną aplikację witryny?
Podobnie jak w przypadku funkcji „Dodaj do ekranu głównego” użytkownicy będą mogli dodawać strony niezależnie od tego, z jakiej natywnej aplikacji korzystają. Jeśli spodziewasz się, że użytkownicy będą mogli zainstalować obie aplikacje, zalecamy odróżnianie ikony lub nazwy witryny od nazwy aplikacji natywnej.
Czy pamięć zainstalowanej witryny zostanie wyczyszczona, jeśli użytkownik wyczyści pamięć podręczną Chrome?
Tak.
Czy po otrzymaniu nowego urządzenia aplikacja zostanie ponownie zainstalowana?
Obecnie nie, ale uważamy, że jest to ważna kwestia i szukamy sposobów, aby przynosiło to efekty.
Jak są obsługiwane uprawnienia? Czy zobaczymy prośbę w Chrome czy na Androidzie?
Uprawnieniami nadal będzie można zarządzać w Chrome. Użytkownicy będą widzieć w Chrome prośby o przyznanie uprawnień i będą mogli je edytować w ustawieniach Chrome.
W których wersjach Androida będzie działać?
Progresywne aplikacje internetowe można instalować we wszystkich wersjach Androida, na których działa Chrome na Androida, zwłaszcza Jelly Bean i nowszych.
Czy używa WebView?
Nie, strona otwiera się w wersji Chrome, z której użytkownik dodał ją.
Czy możemy przesłać utworzone pliki APK do Sklepu Play?
Nie. Jeśli chcesz przesłać własny plik APK, zapoznaj się z zaufanymi działaniami w internecie.
Czy są one dostępne w Sklepie Play?
Nie. Jeśli chcesz przesłać własny pakiet APK, aby umieścić go w Sklepie Play, zapoznaj się z informacjami na temat zaufanych działań w internecie.
Jestem twórcą innej przeglądarki na Androida. Czy mogę skorzystać z tego procesu instalacji? :
Pracujemy nad rozwiązaniem tego problemu. Dokładamy wszelkich starań, aby ta funkcja była dostępna we wszystkich przeglądarkach na Androidzie. Wkrótce podamy więcej szczegółów.