Gdy użytkownik instaluje Twoją aplikację PWA, przeglądarka musi mieć możliwość jednoznacznej identyfikacji tej aplikacji. Do niedawna jednak specyfikacja pliku manifestu aplikacji internetowej nie definiowała sposobu jednoznacznego identyfikowania PWA, przez co przeglądarki podejmowały decyzję i prowadziły do różnych implementacji. W niektórych przeglądarkach używany jest parametr start_url
, a w innych ścieżka do pliku manifestu uniemożliwia zaktualizowanie żadnego z tych pól.
Aby rozwiązać ten problem, wprowadziliśmy w specyfikacji pliku manifestu aplikacji internetowej nową opcjonalną właściwość id
, która umożliwia jawne zdefiniowanie identyfikatora aplikacji PWA. Dodanie właściwości id
do pliku manifestu usuwa zależność od start_url
lub lokalizacji tego pliku i umożliwia ich aktualizowanie w przyszłości.
Do czego służy właściwość id
?
Właściwość id
reprezentuje tożsamość PWA dla przeglądarki. Gdy przeglądarka zobaczy plik manifestu, który nie ma tożsamości pasującej do już zainstalowanej aplikacji PWA, będzie traktować ją jako nową aplikację PWA, nawet jeśli będzie wyświetlana z tego samego adresu URL co inna aplikacja PWA. Jeśli jednak plik manifestu znajdzie plik manifestu z tożsamością pasującą do już zainstalowanej aplikacji PWA, zostanie ona uznana za zainstalowaną aplikację PWA.
Obsługiwane przeglądarki
Obsługa usługi id
jest dostępna w Chrome 96.
Co zrobić, jeśli mam aplikację bez id
?
Nie musisz nic robić. Jeśli nie dodasz metody id
do pliku manifestu aplikacji internetowej (o ile start_url
i ścieżka pliku manifestu pozostaną takie same), nic nie zadziała. Aby przygotować swoją aplikację PWA w przyszłości, możesz dodać do jej pliku manifestu usługę id
.
Jak określić i ustawić urządzenie id
?
Najbezpieczniejszym i najdokładniejszym sposobem określenia wartości id
w przypadku PWA jest sprawdzenie wartości obliczonej przez Chrome.
- W Chrome w wersji 96 lub nowszej otwórz w Narzędziach deweloperskich panel Plik manifestu w panelu Aplikacja.
- Najedź kursorem myszy na ikonę
(!)
obok właściwości Identyfikator aplikacji. Ikona etykietki(!)
pojawi się tylko wtedy, gdy parametrid
nie będzie określony w pliku manifestu aplikacji internetowej. - Zwróć uwagę na wartość
id
podaną w wskazówce (zobacz zrzut ekranu poniżej). - Dodaj właściwość
id
do pliku manifestu aplikacji internetowej, używając wartościid
widocznej w etykietce.
{
...
id: "/?homescreen=1",
start_url: "/?homescreen=1",
...
}
Co się stanie, jeśli nie skonfiguruję id
?
Nie martw się, nic się nie zepsuje. Począwszy od Chrome 96, przeglądarka wygeneruje element id
, jeśli nie ma go w pliku manifestu na podstawie elementu start_url
w manifeście aplikacji internetowej.
Dodanie elementu id
do pliku manifestu aplikacji internetowej umożliwia zmianę start_url
i ścieżki pliku manifestu (i tylko wtedy, gdy ich źródło pozostaje niezmienione), ponieważ przeglądarka rozpozna PWA na podstawie określonego elementu id
, a nie ścieżki start_url
lub pliku manifestu.
Jak to przetestować?
Aby to sprawdzić, wykonaj te czynności:
- Zainstaluj progresywną aplikację internetową.
- Otwórz
about://web-app-internals/
i sprawdź właściwościunhashed_app_id
orazstart_url
zainstalowanej aplikacji PWA. - Dodaj usługę
id
do pliku manifestu aplikacji internetowej, wykonując czynności opisane w sekcji Jak określić i skonfigurowaćid
powyżej. - Uruchom ponownie przeglądarkę za pomocą
chrome://restart
, uruchom PWA z poziomuabout://apps
, a następnie zamknij aplikację PWA, aby wymusić odświeżenie pliku manifestu. - Otwórz
about://web-app-internals/
i sprawdź właściwośćmanifest_id
zainstalowanej aplikacji PWA, aby sprawdzić, czy się nie zmieniła. - Zmień
start_url
w manifeście aplikacji internetowej. - Uruchom ponownie przeglądarkę za pomocą
chrome://restart
, uruchom PWA z poziomuabout://apps
, a następnie zamknij aplikację PWA, aby wymusić odświeżenie pliku manifestu. - Otwórz
about://web-app-internals/
i sprawdź właściwośćstart_url
zainstalowanej aplikacji PWA, aby upewnić się, że została zaktualizowana zgodnie z oczekiwaniami.