PWA могут использовать свойство «display_override» для работы со специальными режимами отображения.
Манифест веб-приложения — это JSON-файл, который сообщает браузеру о вашем Progressive Web App и о том, как оно должно себя вести при установке на настольный компьютер или мобильное устройство пользователя. С помощью свойства display вы можете настроить пользовательский интерфейс браузера, отображаемый при запуске приложения. Например, можно скрыть адресную строку и Chrome. Игры можно даже настроить для запуска в полноэкранном режиме. В качестве краткого обзора, ниже приведены режимы отображения, доступные на момент написания этой статьи.
| Свойство | Использовать | 
|---|---|
 fullscreen | Открывает веб-приложение без пользовательского интерфейса браузера и занимает всю доступную область экрана. | 
 standalone | Открывает веб-приложение, которое выглядит и работает как отдельное приложение. Приложение работает в отдельном окне, отдельно от браузера, и скрывает стандартные элементы пользовательского интерфейса браузера, такие как адресная строка. | 
 minimal-ui |  Этот режим похож на standalone , но предоставляет пользователю минимальный набор элементов пользовательского интерфейса для управления навигацией (например, «Назад» и «Перезагрузка»). | 
 browser | Стандартный браузерный интерфейс. | 
 Эти режимы отображения следуют четко определенной цепочке отката ( "fullscreen" → "standalone" → "minimal-ui" → "browser" ). Если браузер не поддерживает заданный режим, он переключается на следующий режим отображения в цепочке.
 Недостатки свойства display
Проблема этого подхода с жестко заданной цепочкой отката состоит из трех частей:
-  Разработчик не может запросить 
"minimal-ui"без вынужденного возврата в режим отображения"browser", если"minimal-ui"не поддерживается данным браузером. -  Разработчики не имеют возможности учитывать различия между браузерами, например, включает или исключает браузер кнопку «Назад» в окне для 
"standalone"режима. - Текущее поведение делает невозможным введение новых режимов отображения с сохранением обратной совместимости, поскольку такие исследования, как режим вкладок приложения, не имеют естественного места в цепочке отката.
 
 Свойство display_override
 Эти проблемы решаются с помощью свойства display_override , которое браузер учитывает до свойства display . Его значение представляет собой последовательность строк, которые считаются упорядоченными, и применяется первый поддерживаемый режим отображения. Если ни один из них не поддерживается, браузер возвращается к оценке поля display .
 В примере ниже цепочка отката режима отображения будет выглядеть следующим образом. (Подробности "window-controls-overlay" выходят за рамки этой статьи.)
-  
"window-controls-overlay"(Сначала посмотрите наdisplay_override.) -  
"minimal-ui" -  
"standalone"(Когдаdisplay_overrideисчерпан, выполнитьdisplay.) -  
"minimal-ui"(Наконец, используйте цепочку откатаdisplay.) -  
"browser" 
{
  "display_override": ["window-controls-overlay", "minimal-ui"],
  "display": "standalone",
}
 Для сохранения обратной совместимости любой будущий режим отображения будет приниматься только в качестве значения display_override , но не display . Браузеры, не поддерживающие display_override используют свойство display и игнорируют display_override как неизвестное свойство манифеста веб-приложения.
Полезные ссылки
- Объяснитель
 - Тема «Намерение отправить»
 - Ошибка хрома
 - Запись статуса Chrome
 - Репозиторий инкубаций манифеста
 
Благодарности
 Свойство display_override было формализовано Дэниелом Мерфи .