Melhoria na detecção do suporte a Progressive Web App off-line

Penny McLachlan
Penny McLachlan

Os Apps Web Progressivos (PWAs) são um padrão para criar aplicativos modernos e instaláveis usando tecnologia da Web para dispositivos móveis e computadores.

Um dos critérios para criar uma experiência moderna da Web, e não PWAs por coincidência, é que o app precisa continuar funcionando mesmo que o dispositivo esteja off-line. Isso significa que não haverá tela do Chrome Dino se o usuário perder o acesso à rede no dispositivo.

O objetivo de todos os critérios de PWA é garantir que os usuários tenham uma experiência de alta qualidade e competitiva ao navegar na Web. O Chrome realiza verificações de critérios de PWA antes de ativar o recurso de instalação de um PWA.

Somente os apps que atendem a todos os principais critérios de instalabilidade de Progressive Web Apps, incluindo o suporte a um modo off-line, podem ser instalados no dispositivo pelo Chrome.

Lógica de detecção off-line anterior

A verificação do suporte off-line faz parte dos critérios de instalabilidade de PWA há vários anos. Até pouco tempo atrás, o Chrome não tinha a capacidade de simular solicitações pelo service worker. Por isso, não era possível fazer uma verificação completa do comportamento off-line correto.

Diagrama do service worker

Isso significa que o Chrome não tinha a capacidade de validar se o manipulador de eventos fetch retornou um recurso válido com HTTP 200 durante a verificação off-line. O Chrome só verifica se o service worker tem um manipulador fetch.

Atualização da lógica de detecção off-line

O Chrome 89 adicionou a capacidade de executar solicitações off-line simuladas pelo service worker, permitindo que a lógica de detecção off-line melhorada reflita melhor o suporte off-line real do aplicativo.

Planejamos usar esse novo recurso para garantir que os PWA ofereçam uma página válida quando estiverem off-line, mas suspendemos esses planos. A verificação de instalabilidade continuará sendo bem-sucedida se a página tiver um worker de serviço que inclua um gerenciador de eventos fetch.

O que isso significa para os desenvolvedores?

Embora nenhuma mudança seja necessária no momento, recomendamos que você ofereça uma experiência off-line, já que esperamos usar a lógica atualizada para verificar uma página válida no futuro.

Você decide que tipo de experiência off-line quer oferecer. Em um extremo do espectro, há uma experiência totalmente funcional off-line. Isso significa armazenar em cache todos os recursos e dados necessários e sincronizar dados com seu servidor quando o usuário estiver on-line novamente. Armazenar recursos em cache também ajuda a melhorar as métricas do Core Web Vitals, porque elimina a necessidade de fazer o download de recursos da rede sempre. Do outro lado do espectro, há uma página de fallback off-line personalizada.

O aviso mostrado na guia Issues das Ferramentas para Desenvolvedores será removido no Chrome 90.