Os PWAs podem usar a propriedade "display_override" para lidar com modos de exibição especiais.
Um manifesto de app da Web é um arquivo JSON que informa ao navegador sobre seu
PWA e como ele deve se comportar quando instalado no computador ou dispositivo móvel do usuário.
Com a propriedade display
, é possível personalizar a interface do navegador que aparece quando o app é iniciado. Por exemplo, você pode ocultar a barra de endereço e o cromo do navegador. Os jogos podem até ser feitos para abrir em tela cheia.
Como um breve resumo, confira abaixo os modos de exibição especificados no momento em que este artigo foi escrito.
Propriedade | Usar |
---|---|
fullscreen |
Abre o aplicativo da Web sem interface do navegador e ocupa toda a área de exibição disponível. |
standalone |
Abre o app da Web para ter a aparência de um app independente. O app é executado em uma janela separada do navegador e oculta elementos padrão da interface do navegador, como a barra de URL. |
minimal-ui |
Esse modo é semelhante a standalone , mas oferece ao usuário um conjunto mínimo de elementos de interface para controlar a navegação (como voltar e recarregar).
|
browser |
Uma experiência padrão de navegador. |
Esses modos de exibição seguem uma cadeia de substitutos bem definida ("fullscreen"
→ "standalone"
→ "minimal-ui"
→ "browser"
). Se um navegador não for compatível com um determinado modo, ele vai usar o próximo modo de exibição na cadeia.
Deficiências da propriedade display
O problema com essa abordagem de cadeia de substituição fixa é triplo:
- Um desenvolvedor não pode solicitar
"minimal-ui"
sem ser forçado a voltar para o modo de exibição"browser"
caso"minimal-ui"
não seja compatível com um determinado navegador. - Os desenvolvedores não têm como lidar com diferenças entre navegadores, como se o navegador inclui ou exclui um botão "Voltar" na janela para o modo
"standalone"
. - O comportamento atual impossibilita a introdução de novos modos de exibição de maneira compatível com versões anteriores, já que explorações como o modo de aplicativo com guias não têm um lugar natural na cadeia de fallback.
A propriedade display_override
Esses problemas são resolvidos pela propriedade display_override
, que o navegador considera antes da propriedade display
. O valor é uma sequência de strings consideradas em ordem, e o primeiro modo de exibição compatível é aplicado. Se nenhum for compatível, o navegador vai avaliar o campo display
.
No exemplo abaixo, a cadeia de substituição do modo de exibição seria assim:
Os detalhes de "window-controls-overlay"
estão fora do escopo deste artigo.
"window-controls-overlay"
(Primeiro, consultedisplay_override
.)"minimal-ui"
"standalone"
(Quandodisplay_override
estiver esgotado, avaliedisplay
.)"minimal-ui"
(por fim, use a cadeia de substitutosdisplay
)."browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
Para manter a compatibilidade com versões anteriores, qualquer modo de exibição futuro só será aceito como um valor de
display_override
, mas não display
.
Os navegadores que não são compatíveis com display_override
usam a propriedade display
e ignoram display_override
como uma propriedade desconhecida do manifesto do app da Web.
Links úteis
- Explicação
- Conversa sobre a intenção de enviar
- Bug do Chromium
- Entrada de status do Chrome
- Repositório Manifest Incubations
Agradecimentos
A propriedade display_override
foi formalizada por
Daniel Murphy.