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()
можно почитать здесь.