Полноэкранный режим андроид что это значит

Как заставить полноэкранный режим в любом приложении Android без root

Некоторые приложения в Android отображаются в полноэкранном режиме, то есть без строки состояния (вверху) и панели навигации (внизу, если у нас есть это из-за отсутствия физических кнопок). Благодаря этому у нас есть больше экрана для правильного приложения. К сожалению, не все приложения поддерживают его, но мы можем применять эту функциональность по-другому.

Полноэкранный режим (также режим погружения) — это режим, в котором приложение заполняет всю область нашего экрана и не оставляет места для нижних кнопок или строки состояния сверху. Разумеется, мы можем правильно их выбрасывать (например, перемещая палец или постукивая по экрану), но большую часть времени мы имеем только правильное приложение на весь экран.

Google постепенно внедряет этот режим в свои приложения — например, в Chrome 42 он может быть активирован. Некоторые читатели книг, такие как приложение Amazon Kindle, также имеют эту функцию. К сожалению, мы подождем некоторое время для вездесущего полноэкранного режима, но если мы хотим заставить его в приложение, которое его еще не поддерживает, то достаточно приложение GMD Immersive.

Читайте также:  Что значит неладно скроен да крепко сшит

Форсирование полноэкранного режима в любом приложении на Android без root

Преимущество GMD Immersive заключается в том, что он не требует root — приложение может быть загружено немедленно из Play Маркета и использовать его мгновенно без каких-либо дополнительных операций или модификаций.

Загрузить GMD Immersive из Play Маркета

После загрузки и запуска приложение отобразит постоянное уведомление в верхней панели. С его помощью мы можем включить полноэкранный режим в любом месте. Нам даже не нужно ничего настраивать.

Все, что нам нужно сделать, это перейти к некоторым приложениям, таким как Gmail, а затем вытащить верхнюю панель уведомлений. Мы найдем постоянное уведомление от GMD Immersive с тремя младшими значками. Прикосновение к любому из них заставит нас переключиться на другой режим отображения.

Значок с двумя полосами — это стандартный режим, в котором отображаются верхняя строка состояния и панель навигации внизу. Второй значок с одним баром скрывает нижнюю навигационную панель, но оставляет верхнюю строку состояния. В свою очередь, последний значок скрывает обе полосы и отображает все приложение в полноэкранном режиме.

Чтобы восстановить бары, просто проведите пальцем вверху или внизу экрана. Если на телефоне нет физических кнопок («Домой», «Отменить» и т. Д.), И у нас есть постоянная черная полоса в нижней части экрана, это стоит в настройках. GMD Immersive отменить выбор одной вещи — отобразить красную линию выталкивания панели, даже если она скрыта. Для этого перейдите к опции программы GMD, перейдите на вкладку «Триггер» и снимите флажок «Показать в режиме навигации (Показать полный экран при появлении навигационной панели)».

GMD Immersive также позволяет постоянно устанавливать полный экран для выбранных приложений, поэтому все делается автоматически. Это можно сделать на вкладке «Приложения» в настройках программы. Однако это функция, зарезервированная для пользователей, которые приобрели полную версию программы (PRO). Его стоимость составляет около 11 PLN.

Источник

Frontender Magazine

«Одно из наилучших качеств нативных приложений — это то, что они работают в полноэкранном режиме.» — слышу это постоянно от множества людей.

Это расхожее суждение меня в некоторой степени раздражает. Да, веб-страницы отображаются не в полноэкранном режиме: в браузере есть адресная строка и ещё некоторые элементы навигации. Однако, большинство браузеров довольно быстро убирает всё лишнее с экрана.

Мы можем без затруднений создавать полноэкранные веб-сайты и приложения с эффектом присутствия, однако, что характерно для веб, для этого есть несколько способов. Это особенно важно сейчас, когда большее количество браузеров поддерживает полноэкранный режим, который обеспечивает эффект «установленного веб-приложения».

Пример переключения отображения сайта на полноэкранный режим в Chrome под Android

Переход в полноэкранный режим

Есть несколько способов, с помощью которых пользователь или разработчик может перевести веб-приложение в полноэкранный режим.

  • Имитация: автоматическое скрытие адресной строки.
  • Запрос на перевод браузера в полноэкранный режим как реакция на жест пользователя.
  • Установка приложения на устройство.

Имитация: автоматическое скрытие адресной строки

Переход в полноэкранный режим можно имитировать путем автоматического скрытия адресной строки таким образом:

Хочу дать вам дружеский совет. Такой способ существует и он работает, однако это хак. Пожалуйста, не используйте его.

Это довольно простой способ. Страница загружается и строка браузера получает указание скрыться из виду. К сожалению, он не соответствует стандартам и плохо поддерживается. Вам придётся поработать над решением для обхода некоторых особенностей. Например, браузеры часто восстанавливают расположение страницы когда пользователь на неё возвращается. Использование window.scrollTo блокирует такую возможность, что раздражает пользователей. Чтобы обойти эту проблему придётся сохранять последнее расположение в локальном хранилище (localStorage) и придумать решение для пограничных случаев (например, когда пользователь открывает страницу в нескольких окнах).

Запрос на перевод браузера в полноэкранный режим как реакция на жест пользователя

Не все платформы одинаковы. Для Safari под iOS нет Fullscreen API, в отличии от Chrome, Android и Firefox.

Для большинства приложений вам придётся использовать комбинацию из JS API и CSS-селекторов, предложенных в спецификации полноэкранного режима.

Главные JS API, о которых вам нужно знать при разработке приложения с полноэкранным режимом:

  • element.requestFullscreen() (на данный момент используется с префиксом для Chrome и Firefox) отображает элемент в полноэкранном режиме.
  • document.cancelFullscreen() (на данный момент используется с префиксом для Chrome и Firefox) прекращает отображение в полноэкранном режиме.
  • document.fullscreenElement (на данный момент используется с префиксом для Chrome и Firefox) возвращает true если один из элементов отображается в полноэкранном режиме.

Обратите внимание на то, что в версиях с префиксами регистр буквы «S» в слове «screen» абсолютно непоследователен. Это неудобно, но такова текущая проблема спецификаций, которые у нас есть.

Когда ваше приложение отображается в полноэкранном режиме, элементы управления интерфейсом браузера больше не доступны. Способ взаимодействия пользователя с интерфейсом в результате меняется. Ему не доступны стандартные элементы управления навигацией, такие как кнопки «Вперёд» и «Назад»; у него есть средство «аварийного» выхода из полноэкранного режима — кнопка «Обновить». Необходимо учесть этот сценарий. Стиль и представление сайта при переходе в полноэкранный режим можно изменить с помощью CSS-селекторов.

Пример выше довольно далёк от реальности; я упустил все сложности, связанные с использованием вендорных префиксов.

Горите в аду, вендорные префиксы!

На самом деле код будет намного более сложным. Команда Mozilla создала очень полезный скрипт, который можно использовать для запуска полноэкранного режима. Как видите, из-за ситуации с вендорными префиксами, он довольно сложный и громоздкий в сравнении с упомянутым API. Даже в слегка упрощённом виде, приведённом ниже, код остается сложным:

Мы, веб-разработчики, не любим излишества в коде. Можно использовать хороший общий API от Синдре Сорхуса (Sindre Sorhus) — модуль Screenfull.js, который объединяет два немного разных JS API и вендорные префиксы в один последовательный API.

Запуск страницы в полноэкранном режиме

Запуск веб-страницы в полноэкранном режиме при открытии её пользователем невозможен. Разработчикам браузеров прекрасно известно, что переход в полноэкранный режим при каждой загрузке страницы ужасно раздражает, потому для его запуска необходим жест пользователя. Однако у пользователей есть возможность «установить» приложение, его инсталляция является для операционной системы сигналом, что пользователь хочет запускать сайт как приложение.

Это довольно просто реализовать на ведущих мобильных платформах используя мета теги или файл манифеста.

С самого запуска iPhone, пользователи имеют возможность устанавливать веб-приложения на рабочий стол и запускать их в полноэкранном режиме.

Если для content задано значение yes , веб-приложение запускается в полноэкранном режиме; в противном случае оно запускается в обычном режиме. По умолчанию для просмотра веб-контента используется Safari. Определить загрузку страницы в полноэкранном режиме можно с помощью неизменяемого булевого свойства JavaScript window.navigator.standalone .

Chrome под Android

Команда Chrome недавно ввела свойство, которое говорит браузеру, что нужно загружать страницу в полноэкранном режиме, если пользователь добавил её на рабочий стол. Это напоминает схему для Safari под iOS:

Можно настроить веб-приложение так, чтобы для него добавлялся ярлык на рабочий стол устройства и приложение запускалось в полноэкранном «режиме приложения» используя Chrome для элемента меню «добавить на рабочий стол» на Android.

Firefox OS

В Firefox OS введена модель устанавливаемых веб-приложений и пакетированных приложений для разработчиков, которые создают приложения для телефона пользователя. Эта модель немного более сложная, однако вписывается в общий подход к устанавливаемым приложениям. Разработчик должен определить манифест для приложения, который Firefox OS обрабатывает в процессе установки.

Советы по использованию API

Переход документа в полноэкранный режим

Нет ничего странного в намерении вывести элемент body в полноэкранный режим, однако на движке WebKit и Blink можно наблюдать странный эффект уменьшения ширины тела документа до наименьшего размера, при котором на нём помешается весь контент (в Gecko от Mozilla всё нормально).

Рисунок 1: Полноэкранный режим для элемента body

Чтобы это исправить, используйте вместо body элемент document :

Рисунок 2: Полноэкранный режим для элемента document .

Отображение элемента video в полноэкранном режиме

Перевести элемент video в полноэкранный режим можно точно так же как и любой другой элемент. Можно применить для элемента video метод requestFullScreen .

Если для вашего элемента не указан атрибут controls , пользователь не сможет контролировать воспроизведение видео в полноэкранном режиме. Желательно создать простой контейнер-обёртку для video и элементов управления, которые должен увидеть пользователь.

Так мы получаем больше гибкости, ведь для объекта-контейнера можно использовать псевдо-селектор CSS (например, чтобы спрятать кнопку «goFS»).

Используя такое решение можно определить когда запущен полноэкранный режим и преобразить интерфейс пользователя соответственно:

  • предоставить ссылку для возвращения на исходную страницу.
  • Предоставить механизм для закрытия диалоговых окон или перемещения назад.

Рекомендации по UX

Не рассчитывайте на элементы управления навигацией

В устройствах с iOS и Firefox OS нет физической кнопки «Назад» и в них не предусмотрен жест обновления, следовательно вам нужно позаботиться чтобы пользователь мог пользоваться навигацией и не застрять в процессе.

На всех ведущих платформах можно легко определить воспроизведение полноэкранного режима или режима установленного приложения.

Chrome под Android

Когда страница запущена в режиме установленного приложения, Chrome не работает в истинном полноэкранном режиме, потому document.fullscreenElement возвращает null и CSS-селекторы не работают. У Chrome также нет API, похожего на свойство iOS navigator.standalone .

Когда пользователь запрашивает полноэкранный режим посредством выполнения жеста на вашем веб-сайте, доступны стандартные API полноэкранного режима, в том числе псевдо-селектор CSS, которые позволяют адаптировать интерфейс для отображения в полноэкранном режиме:

Firefox

Когда пользователь запрашивает полноэкранный режим на вашем сайте или запускает приложение в полноэкранном режиме, доступны стандартные API полноэкранного режима, в том числе псевдо-селектор CSS, которые позволяют адаптировать интерфейс для отображения в полноэкранном режиме:

Спецификация

Формулировка в спецификации немного отличается от реализации в Chrome и Firefox, однако на практике всё выглядит так же.

Сохранение отображения в полноэкранном режиме

API полноэкранного режима могут иногда быть довольно причудливыми. Разработчики браузеров не хотят, чтобы пользователь застрял на странице в полноэкранном режиме, потому придумали механизмы отключения полноэкранного режима при любой возможности. Это значит, что невозможно создать веб-сайт, у которого несколько страниц подряд отображались бы в полноэкранном режиме, потому что:

  • программное изменение URL-адреса посредством window.location = «http://example.com» ведёт к отключению полноэкранного режима
  • Если пользователь кликнет по внешней ссылке внутри страницы, полноэкранный режим отключится
  • Изменение URL-адреса с помощью navigator.pushState API также приведёт к отключению полноэкранного режима

Если вы хотите зафиксировать отображение в полноэкранном режиме, у вас есть два варианта:

  1. использовать механизмы установленного веб-приложения для перехода в полноэкранный режим
  2. Управляйте состоянием интерфейса и приложения используя фрагмент #.

Используя #синтаксис для обновления url (window.location = “#somestate”) и установив обработчик для события window.onhashchange можно использовать стек истории браузера для управления изменениями состояния приложения, позволить пользователю использовать кнопку «назад» на устройстве или предложить простую программную кнопку «назад» используя History API:

Дайте пользователю возможность выбирать когда переходить в полноэкранный режим

Пользователя ничто так не раздражает как самовольные действия браузера. Когда пользователь заходит на ваш сайт, не пытайтесь вынудить его перейти в полноэкранный режим.

Не перехватывайте первое событие касания для запуска requestFullScreen .

  1. Это раздражает.
  2. В определённый момент в будущем браузер может выдать пользователю запрос на разрешение перехода в полноэкранный режим.

Рисунок 3: FirefoxOS запрашивает разрешение на переход в полноэкранный режим.

Если вы хотите чтобы приложение запускалось на весь экран, задумайтесь над использованием установки для каждой платформы.

Не спамьте пользователя предложениями установить приложение на рабочий стол

Если вы планируете предоставить возможность просмотра в полноэкранном режиме с помощью механизма установленного приложения, проявите деликатность по отношению к пользователю:

  • не навязывайтесь. Используйте шапку или подвал страницы чтобы сообщить пользователю о возможности установки приложения.
  • Если пользователь проигнорировал это сообщение, больше его не выводите.
  • Маловероятно что пользователь захочет установить приложение при первом посещении, разве что он остался очень доволен вашими услугами. Предложение установить приложение лучше выводить после позитивного взаимодействия пользователя с вашим сайтом.
  • Если пользователь регулярно посещает ваш сайт и не устанавливает приложение, вряд ли он сделает это в будущем. Не докучайте ему.

Заключение

Пока у нас нет полностью стандартизированного и реализованного API, используя рекомендации, представленные в этой статье, вы легко можете создавать страницы, в которых будет использоваться весь экран пользователя, вне зависимости от клиента.

Если вам известны хорошие приёмы для полноэкранного режима, оставьте комментарий и мы расскажем о них всему миру. Если вам известны приёмы, которые не стоит использовать для перехода в полноэкранный режим, сообщите нам, чтобы мы могли обновить статью и спасти миллионы пользователей в сети от разочарования.

Источник

Оцените статью