PWA могут использовать свойство display_override для работы со специальными режимами отображения.
Манифест веб-приложения — это файл JSON, который сообщает браузеру о вашем прогрессивном веб-приложении и о том, как оно должно вести себя при установке на настольный компьютер или мобильное устройство пользователя. С помощью свойства display
вы можете настроить, какой пользовательский интерфейс браузера будет отображаться при запуске вашего приложения. Например, вы можете скрыть адресную строку и хром браузера. Игры даже можно сделать так, чтобы они запускались в полноэкранном режиме. Вкратце, ниже приведены режимы отображения, указанные на момент написания этой статьи.
Свойство | Использовать |
---|---|
fullscreen | Открывает веб-приложение без пользовательского интерфейса браузера и занимает всю доступную область отображения. |
standalone | Открывает веб-приложение, которое выглядит как автономное приложение. Приложение запускается в собственном окне, отдельном от браузера, и скрывает стандартные элементы пользовательского интерфейса браузера, такие как строка URL-адреса. |
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
было формализовано Дэниелом Мерфи .