Lepszy sposób aktualizowania aplikacji internetowych

Dan Murphy
Dan Murphy
Dibyajyoti Pal
Dibyajyoti Pal

Data publikacji: 21 stycznia 2026 r.

Od Chrome 144 proces aktualizacji instalowanych aplikacji internetowych, które mają plik manifestu aplikacji internetowej, został uproszczony, dzięki czemu jest bardziej deterministyczny, przewidywalny i wydajny. W tym poście wyjaśniamy obecne podejście i zmiany, które wprowadziliśmy, aby je ulepszyć.

Poprzednie podejście (przed Chrome 144)

Przed wersją Chrome 144 aplikacje internetowe nie miały konkretnego zdarzenia, które umożliwiałoby aktywne wywoływanie aktualizacji. Aktualizacje mogą być wprowadzane, gdy deweloperzy zmodyfikują plik manifestu aplikacji lub powiązane z nim ikony. Proces aktualizacji rozpoczyna się, gdy program użytkownika pobierze plik manifestu za pomocą linku do pliku manifestu. Zwykle dzieje się to, gdy użytkownik odwiedza witrynę lub uruchamia aplikację (z połączonym plikiem manifestu). Aby sprawdzić, czy aktualizacja jest wymagana, system porównuje bieżący plik manifestu i ikony z wcześniej zarejestrowanym stanem. Ta procedura była zasobochłonna, ponieważ zawsze wymagała pobierania ikon z sieci w celu porównania mapy bitowej.

Aby zmniejszyć obciążenie serwera związane z pobieraniem ikon, Chrome wprowadził ograniczenie, które pozwalało sprawdzać ikony tylko raz dziennie w przypadku każdej aplikacji, ale całkowite zużycie przepustowości pozostało wysokie. Ograniczenie sprawdzania do raz dziennie powoduje też niespójności podczas programowania i testowania, a także utrudnia deweloperom dostarczanie niezawodnych rozwiązań użytkownikom, którzy nie otrzymali aktualizacji.

W tym podejściu deweloperzy musieli radzić sobie ze złożonością wdrażania zmian związanych z bezpieczeństwem, takich jak aktualizacje nazwy lub ikony aplikacji, często nazywane zmianami tożsamości aplikacji. Aplikacje internetowe nie mają centralnego organu, takiego jak Google Play, który sprawdza aktualizacje, dlatego te modyfikacje muszą być wyraźnie przedstawione użytkownikom do potwierdzenia. Określenie najbardziej odpowiedniego momentu na wyświetlenie użytkownikom prośby o wprowadzenie tych zmian było jednak trudne.

Poprzednie wersje okna aktualizacji często wprowadzały użytkowników w błąd, ponieważ informowały o zmianie ikon, które wizualnie wyglądały tak samo. Problem ten wynikał z polegania na bezpośrednich porównaniach pikseli, które często wykrywały nieistotne różnice. Niektóre różnice wynikały z celowych zmian wprowadzonych przez deweloperów, ale wiele z nich było spowodowanych dynamicznym przekodowywaniem obrazów przez sieci CDN. Częste wyświetlanie okna potwierdzenia doprowadziło ostatecznie do wyłączenia aktualizacji ikon w Chrome 91.

Aby rozwiązać ten problem w Chrome na Androida, kilka lat temu wprowadziliśmy próg różnicy wizualnej. Dzięki temu potwierdzenie użytkownika jest wymagane tylko wtedy, gdy zmiany ikon są znaczące. Dzięki temu ulepszeniu przywróciliśmy aktualizowanie ikon na Androidzie, ale funkcja pozostała wyłączona w Chrome na komputerach.

Alert z informacją o zmianie ikony i wiadomością ostrzegającą użytkownika, z przyciskami umożliwiającymi zaakceptowanie zmiany lub odinstalowanie aplikacji.
Komputery (Chrome w wersji 91 i nowszej)
Alert na urządzeniu mobilnym informujący o zmianie ikony i ostrzegający użytkownika. Zawiera przyciski umożliwiające zaakceptowanie zmiany lub odinstalowanie aplikacji.
Android (obecnie)

Ograniczenia i cele zmian w aktualizacjach aplikacji internetowych

Podczas opracowywania nowego procesu aktualizacji kierowaliśmy się tymi celami:

  • Spełnianie oczekiwań użytkowników: tożsamość aplikacji jest nierozerwalnie związana z jej pochodzeniem, dlatego nazwy i ikony nie można zmieniać bez wyraźnej zgody użytkownika.
  • Zapewnij spójność działania: aplikacje powinny być jak najbardziej aktualne dla wszystkich użytkowników, aby zapewnić spójność działania.
  • Zapewnij przewidywalną wygodę użytkownika i okna dialogowe: deweloperzy powinni móc łatwo przewidzieć, kiedy użytkownicy napotkają w interfejsie komunikaty dotyczące aktualizacji nazw lub ikon aplikacji.
  • Optymalizacja wykorzystania sieci: mechanizm aktualizacji powinien minimalizować niepotrzebny ruch danych.

Co się zmieniło w Chrome 144?

Aktualizacje nazwy i ikony są teraz opcjonalne

W przeszłości użytkownicy widzieli uciążliwe okno, w którym musieli odinstalować aplikację lub natychmiast zaakceptować zmiany ikony i nazwy. Została ona zastąpiona bardziej przyjazną dla użytkownika sugestią, do której można uzyskać dostęp z rozwiniętego menu z 3 kropkami. Po wybraniu tej opcji użytkownicy mogą całkowicie zignorować te zmiany tożsamości, jeśli wolą.

Większość aktualizacji pliku manifestu jest stosowana od razu, ale ikony i nazwy aplikacji – uważane za elementy wrażliwe pod względem bezpieczeństwa – są przechowywane oddzielnie. Dzięki temu użytkownicy mogą sprawdzać i wprowadzać te konkretne zmiany w dogodnym dla siebie czasie.

Menu z opcją „Sprawdź aktualizację aplikacji”.

Kliknięcie Sprawdź aktualizację aplikacji spowoduje wyświetlenie zmienionego okna. Tytuł zmienia się w zależności od tego, które elementy są aktualizowane.

Okno na komputerze z prośbą o sprawdzenie aktualizacji ikony i nazwy.

Ikony nie są pobierane, jeśli pole ikon nie uległo zmianie.

Ikony są teraz uznawane za niezmienione, jeśli pole icons w pliku manifestu pozostaje takie samo jak w ostatniej zastosowanej wersji. Zgodnie z tą nową logiką Chrome nie pobiera ikon do porównania wizualnego, traktując adresy URL ikon jako Cache-Control:immutable. Aby wywołać aktualizację ikony, programiści muszą teraz zmodyfikować metadane lub adres URL ikony.

Usunięcie ograniczenia aktualizacji

Chrome nie pobiera już ikon za każdym razem, gdy napotka plik manifestu zainstalowanej aplikacji, więc poprzednie ograniczenie, które ograniczało sprawdzanie aktualizacji do raz dziennie, zostało zniesione. Deweloperzy mogą teraz mieć pewność, że aktualizacja nastąpi natychmiast w przypadku wszystkich członków niezwiązanych z bezpieczeństwem.

Obsługa drobnych różnic w ikonach na różnych platformach

Aby poprawić komfort użytkowników, Chrome automatycznie stosuje aktualizacje ikon, które w porównaniu piksel po pikselu różnią się o mniej niż 10%. Dzięki temu niewielkie różnice, np. spowodowane ponownym kodowaniem przez sieć CDN, nie będą wywoływać u użytkownika mylącego okna aktualizacji.

Aby zapobiec potencjalnym nadużyciom, limit ten wynosi 1 raz dziennie. Jeśli w tym czasie nastąpią dalsze zmiany, ikona będzie traktowana jako standardowa aktualizacja, a użytkownik zostanie poproszony o potwierdzenie zmiany.

Przykład aktualizacji ikony i nazwy

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}

Zmiana adresu URL ikony gwarantuje, że użytkownik zobaczy okno aktualizacji, w którym będzie mógł zmienić ikonę.

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app-NEW-URL.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}