Документация
ОС Аврора 5.1.5

Ориентация приложения

Когда приложение работает в какой-либо исключительной ориентации (только в альбомной или только в портретной), можно заранее подготовить Домашний экран пользователя, "повернув" его в правильную ориентацию до запуска непосредственно самого приложения. Поворот интерфейса Домашнего экрана произойдёт при нажатии на иконку приложения до отображения экрана заставки приложения. Это также позволяет отобразить экранную заставку в правильной ориентации, а затем осуществить плавный переход в окно приложения без лишних поворотов интерфейса.

Такое поведение определяется группой полей в секции X-Aurora-Application:

  • SmallScreenOrientation — для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.Small.
  • MediumScreenOrientation — для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.Medium.
  • LargeScreenOrientation — для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.Large.
  • ExtraLargeScreenOrientation — для устройств с категорией Silica.Screen.sizeCategory == Silica.Screen.ExtraLarge.
  • Orientation — для устройств любой категории, но может быть переопределено другим полем из списка выше.

Значения, принимаемые в данных полях: Portrait, Landscape, PortraitInverted, LandscapeInverted, PortraitMask, LandscapeMask, All.

Каждое поле может принимать либо одну конкретную ориентацию из предложенного списка, либо список возможных значений, задаваемый через символ ; (точка с запятой).

Пример для приложения, которое может работать во всех ориентациях, но на устройствах с маленьким дисплеем — только в портрете:

[X-Aurora-Application]
Orientation=All
SmallScreenOrientation=Portrait

Пример для приложения, которое может работать только в неинвертированных ориентациях:

[X-Aurora-Application]
Orientation=Portrait;Landscape

Выбор ориентации осуществляется по следующему алгоритму:

  1. Сначала перебираются все возможные варианты ориентации из поля Orientation, каждое значение сравнивается с текущей ориентацией Домашнего экрана. В случае совпадения двух значений выбирается текущая ориентация Домашнего экрана. Если не совпало ни одно из значений, то выбирается первая ориентация из списка. Например, Домашний экран находится в инвертированной ландшафтной ориентации, в таком случае для списка: Orientation=Portrait;Landscape будет выбрана ориентация Portrait.
  2. Затем перебираются все возможные варианты ориентации из поля, соответствующего категории устройства, каждое значение сравнивается с выбранной ориентацией на первом шаге. В случае совпадения двух значений сохраняется ранее выбранная ориентация. В случае несовпадения ни одного из значений выбирается первая ориентация из списка.
  3. Если итоговая ориентация совпадает с текущей ориентацией Домашнего экрана, то поворота интерфейса не произойдёт, в противном случае интерфейс будет повёрнут в выбранную ориентацию. Затем в выбранной ориентации раскрывается экран заставки приложения.

Примечание. Разработчик приложения должен гарантировать, что приложение отобразит окно приложения в правильной ориентации, указанной в .desktop-файле, в противном случае поворот домашнего экрана произойдёт после отображения экрана заставки.

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

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.