Como o Chrome lida com as atualizações no manifesto do app da Web

O que é necessário para alterar ícones, atalhos, cores e outros metadados do PWA

Quando um PWA é instalado, o navegador usa informações do manifesto do app da Web para o nome do app, os ícones que ele precisa usar e o URL que precisa ser aberto quando o app é iniciado. Mas e se você precisar atualizar atalhos de apps ou testar uma nova cor de tema? Quando e como essas mudanças são refletidas no navegador?

Na maioria dos casos, as mudanças são refletidas em um ou dois dias após a inicialização do PWA, depois que o manifesto é atualizado.

Atualizações no Chrome para computador

Quando o PWA é iniciado ou aberto em uma guia do navegador, o Chrome determina a última vez que o manifesto local foi verificado em busca de mudanças. Se o manifesto não tiver sido verificado desde a última inicialização do navegador ou nas últimas 24 horas, o Chrome vai fazer uma solicitação de rede para o manifesto e, em seguida, comparar com a cópia local.

Se algumas propriedades no manifesto tiverem mudado (consulte a lista abaixo), o Chrome colocará o novo manifesto na fila e, depois que todas as janelas forem fechadas, ele será instalado. Depois de instalado, todos os campos do novo manifesto, exceto icons, são atualizados.

Quais propriedades vão acionar uma atualização?

  • name
  • short_name
  • display (veja abaixo)
  • scope
  • shortcuts
  • start_url
  • theme_color
  • file_handlers

O que acontece quando o campo display é atualizado?

Se você atualizar o modo de exibição do app de browser para standalone, os usuários atuais não vão ter os apps abertos em uma janela após a atualização. Há duas configurações de exibição para um app da Web: a do manifesto (que você controla) e uma configuração de guia de janela/navegador controlada pelo usuário. A preferência do usuário é sempre respeitada.

Como testar atualizações de manifestos

A página chrome://web-app-internals (disponível no Chrome 85 ou versões mais recentes) inclui informações detalhadas sobre todos os PWAs instalados no dispositivo e pode ajudar você a entender quando o manifesto foi atualizado pela última vez, com que frequência ele é atualizado e muito mais.

Para forçar manualmente o Chrome a verificar um manifesto atualizado, inicie o Chrome com a sinalização de linha de comando --disable-manifest-update-throttle ou reinicie o Chrome (usando about://restart). Isso redefine o timer para que o Chrome verifique se há um manifesto atualizado na próxima vez que o PWA for iniciado. Em seguida, inicie a PWA. Depois de fechar o PWA, ele precisa ser atualizado com as novas propriedades do manifesto.

Referências

Atualizações no Google Chrome para Android

Quando o PWA é iniciado, o Chrome determina a última vez que o manifesto local foi verificado em busca de mudanças. Se o manifesto não tiver sido verificado nas últimas 24 horas, o Chrome programará uma solicitação de rede para o manifesto e o comparará com a cópia local.

Se algumas propriedades do manifesto tiverem mudado (veja a lista abaixo), o Chrome enfileira o novo manifesto e, depois que todas as janelas do PWA forem fechadas, o dispositivo estiver conectado e conectado ao Wi-Fi, o Chrome vai solicitar um WebAPK atualizado do servidor. Após a atualização, todos os campos do novo manifesto serão usados.

Quais propriedades vão acionar uma atualização?

  • name
  • short_name
  • icons
  • background_color
  • display
  • orientation
  • scope
  • shortcuts
  • start_url
  • theme_color
  • web_share_target

Se o Chrome não conseguir receber um manifesto atualizado do servidor, ele poderá aumentar o tempo entre as verificações para 30 dias.

Como testar atualizações de manifestos

A página about://webapks inclui informações detalhadas sobre todos os PWAs instalados no dispositivo e pode informar quando o manifesto foi atualizado pela última vez, com que frequência ele é atualizado e muito mais.

Para programar manualmente uma atualização do manifesto, substituindo o timer e o manifesto local, faça o seguinte:

  1. Conecte o dispositivo e confira se ele está conectado ao Wi-Fi.
  2. Use o gerenciador de tarefas do Android para encerrar o PWA e, em seguida, use o painel do app nas configurações do Android para forçar o fechamento do PWA.
  3. No Chrome, abra about://webapks e clique no botão "Atualizar" do PWA. O status "Atualizar status" vai mudar para "Pendente".
  4. Inicie a PWA e verifique se ela foi carregada corretamente.
  5. Use o gerenciador de tarefas do Android para encerrar o PWA e, em seguida, use o painel do app nas configurações do Android para forçar o encerramento do PWA.

A PWA geralmente é atualizada em alguns minutos. Depois que a atualização for concluída, o status "Status da atualização" vai mudar para "Concluída".

Referências