CSS медиа-запрос (@media) display-mode можно использовать для проверки режима отображения приложения. Это согласуется с секцией display Web app manifest’s, которые являются частью набора веб-технологий, называемых прогрессивными веб-приложениями (PWA), представляющих веб-сайты, которые можно установить на домашний экран устройства.
В отличие от обычных веб-приложений с простыми ссылками на главном экране или закладками, PWA можно загрузить заранее и они могут работать в автономном режиме, а также использовать обычные веб-API.
Значение для display – это строка, которая определяет предпочтительный режим отображения для веб-сайта разработчиками.
Режим отображения влияет на объем пользовательского интерфейса браузера, предоставляемый пользователю. У него может быть несколько вариантов значений от browser (когда отображается нормальное окно браузера) до
Возможные значения для display:
browser– приложение открывается в обычной вкладке браузера или в новом окне, в зависимости от браузера и платформы.minimal-ui– приложение будет выглядеть и работать как отдельное, но будет иметь минимальный набор элементов пользовательского интерфейса для управления навигацией. Элементы зависят от браузера.standalone– приложение будет выглядеть как отдельное, с собственным окном, значком для запуска приложения и т.д. В этом режиме будут исключаться элементы пользовательского интерфейса для управления навигацией, но могут включаться другие, например, строка состояния.fullscreen– используется вся доступная область отображения без элементов пользовательского интерфейса.
Опция fullscreen (полноэкранного режима), как следует из названия, определяет, находится ли устройство в полноэкранном режиме. Основываясь на этом, с помощью медиа-запроса display-mode можно применить или изменить некоторый CSS. Вот как можно написать этот медиа-запрос:
@media all and (display-mode: fullscreen) {
/* здесь можно написать CSS,
который будет работать только
в полноэкранном режиме */
body {
background-color: yellow;
}
}
Если для полноэкранного режима нужно выполнять какой-то Javascript, можно использовать метод window.matchMedia() и прикрепить к нему обработчик, который будет наблюдать за изменениями, например:
window.matchMedia('(display-mode: fullscreen)')
.addListener(({ matches }) => {
if (matches) {
// fullscreen включен
} else {
// fullscreen выключен
}
});
Подробнее о методе window.matchMedia() можно почитать здесь.


