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:
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/
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.