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
было формализовано Дэниелом Мерфи .