Глобальные свойства
Глобальные свойства — это встроенные переменные в FlutterFlow, которые вы можете использовать на всех страницах вашего приложения. Эти свойства предопределены FlutterFlow, поэтому вы не можете создавать или изменять их самостоятельно. Они предназначены для помощи в выполнении общих задач эффективно, независимо от типа разрабатываемого приложения.
Например, глобальные свойства можно использовать для перенаправления пользователей на другую страницу, если они не авторизованы, или для включения определенной функциональности в зависимости от платформы, на которой запущено приложение.
Доступ к этим свойствам осуществляется через меню Set from Variable > Global Properties.

Глобальные свойства — это встроенные переменные, предоставляемые FlutterFlow. Вы не можете создать их самостоятельно.
Список глобальных свойств
Список всех доступных глобальных свойств следующий:
-
Is User Logged In: Указывает, авторизован ли пользователь в приложении в данный момент. Полезно для предоставления эксклюзивных функций зарегистрированным пользователям или для корректировки элементов интерфейса в зависимости от статуса авторизации. Это свойство доступно только в том случае, если вы включили аутентификацию любого типа.
-
Current Time: Получает текущую дату и время. Изучите варианты пользовательского форматирования, чтобы настроить отображение DateTime под ваши нужды.
-
Current Device Location: Возвращает теку щее местоположение пользователя, идеально подходит для обновления его позиции на Google Maps или сохранения в базе данных на сервере. Ознакомьтесь с примерами по получению и сохранению текущего местоположения устройства.
-
Link To Current Page: Предоставляет глубокую ссылку текущей страницы.
-
Current Route Path: Предоставляет имя маршрута для активной или видимой в данный момент страницы в вашем приложении. Это свойство особенно полезно в сценариях, когда вы хотите скорректировать или заблокировать определенные действия, если активная страница не та, которую вы ожидали. Например, если приложение запускается через push-уведомление, домашняя страница может продолжать работать в фоновом режиме, даже если уведомление перенаправляет на другую страницу. Используя это свойство, вы можете предотвратить ненужные срабатывания действий, такие как On Page Load на домашней странице. Подробности об избежании этой проблемы.
-
Current Route Stack: Возвращает список имен маршрутов, представляющих все активные страницы в стеке навигации вашего приложения. Это полезно для понимания, на каком уровне вложенности находится пользователь и в какой последовательности он посетил страницы. Эти данные могут потребоваться для управления пользовательской навигацией назад, отображения хлебных крошек или логирования аналитики. Например, в приложении для электронной коммерции вы можете проверить стек маршрутов, чтобы увидеть, пришел ли пользователь на страницу оформления заказа с определенной страницы, и соответственно настроить промо-сообщения или применить скидку.
-
Fraction of Screen Width: Определяет пропорциональную ширину экрана устройства.
-
Fraction of Screen Height: Определяет пропорциональную высоту экрана устройства.
-
Screen Width: Предоставляет общую ширину экрана текущего устройства в пикселях.
-
Screen Height: Предоставляет общую высоту экрана текущего устройства в пикселях.
-
Is Android: Определяет, использует ли пользователь приложение на устройстве Android. См. пример.
-
Is iOS: Определяет, использует ли пользователь приложение на устройстве iOS. См. пример.
-
Is Web: Определяет, использует ли пользователь приложение через веб-браузер. См. пример.
-
Is Debug Mode: Указывает, запущено ли приложение в режиме отладки, полезно для отображения функций или выполнения действий только во время отладки.
-
Is Dark Mode: Проверяет, установлен ли для текущей темы приложения темный режим.
-
Is Light Mode: Проверяет, установлен ли для текущей темы приложения светлый режим.
-
Is On-Screen Keyboard Visible: Проверяет, отображается ли экранная или программная клавиатура. Это полезно для корректировки интерфейса, если клавиатура видна на экране. См. быстрый пример.
-
Current Environment: Возвращает текущее значение среды разработки.
Подробнее о Generated Code за глобальными свойствами.
Current Time
Свойство Current Time позволяет получить текущую дату и время. Эта опция доступна, когда Source установлен в Global Properties.
Вы можете использовать это свойство для отображения текущей даты и времени на экране или передачи его в виджет FlutterFlow или пользовательский виджет для дальнейшей обработки.
Custom formatting
Иногда может потребоваться отображение дат и времени в формате, который мы не поддерживаем. Здесь на помощь приходит пользовательское форматирование даты и времени. Custom Format позволяет представлять данные о дате и времени множеством способов.
Например, вы можете ввести текст вроде 'yyyy/MM/dd || kk:mm', и дата со временем отобразится как '2023/07/25 || 10:30'.
В приведенном выше примере 'yyyy/MM/dd || kk:mm' — это пользовательский формат. Вот что он означает:
yyyyпредставляет четырехзначный год, например "2023".MM— это двухзначный месяц, например "07" для июля.ddуказывает двухзначный день, например "25".kk— это двухзначный час в 24-часовом формате, например "10".mmобозначает двухзначную минуту, например "30".
Вот еще несколько спецификаторов формата, которые вы можете использовать для создания пользовательского формата:
d: День месяца. Например, "2" для 2 февраля.E: Сокращенное название дня недели. Например, "Mon" для понедельника.EEEE: Полное название дня недели. Например, "Monday".LLL: Сок ращенное название месяца (самостоятельное). Например, "Feb".LLLL: Полное название месяца (самостоятельное). Например, "February".M: Месяц года. Например, "2" для февраля.Md: Месяц и день. Например, "2/2".MEd: Сокращенное название дня недели, месяц и день. Например, "Mon, 2/2".MMM: Сокращенное название месяца. Например, "Feb".MMMd: Сокращенное название месяца и день. Например, "Feb 2".MMMEd: Сокращенное название дня недели, месяц и день. Например, "Mon, Feb 2".MMMM: Полное название месяца. Например, "February".MMMMd: Полное название месяца и день. Например, "February 2".MMMMEEEEd: Полное название месяца, день недели, день. Например, "Monday, February 2".QQQ: Сокращенное название квартала. Например, "Q1".QQQQ: Полное название квартала. Например, "1st quarter".y: Год. Например, "2023".yM: Год и месяц. Например, "2023/2".yMd: Год, месяц, день. Например, "2023/2/2".yMEd: День недели, год, месяц, день. Например, "Mon, 2023/2/2".yMMM: С окращенное название месяца и год. Например, "Feb 2023".yMMMd: Сокращенное название месяца, день, год. Например, "Feb 2, 2023".yMMMEd: День недели, месяц, день, год. Например, "Mon, Feb 2, 2023".yMMMM: Полное название месяца и год. Например, "February 2023".yMMMMd: Полное название месяца, день, год. Например, "February 2, 2023".yMMMMEEEEd: День недели, полное название месяца, день, год. Например, "Monday, February 2, 2023".yQQQ: Сокращенное название квартала, год. Например, "Q1 2023".yQQQQ: Полное название квартала, год. Например, "1st quarter 2023".H: Час в дне (24-часовой). Например, "15" для 15:00.Hm: Час, минута (24-часовой). Например, "15:30".Hms: Час, минута, секунда (24-часовой). Например, "15:30:45".j: Час в дне (12-часовой). Например, "3 PM".jm: Час, минута (12-часовой). Например, "3:30 PM".jms: Час, минута, секунда (12-часовой). Например, "3:30:45 PM".m: Минута в часе. Например, "30".ms: Минута, секунда. Например, "30:45".s: Секунда в минуте. Например, "45".G: Обозначение эры. Например, "AD" в "AD 2023".L: Самостоятельный месяц. Например, "7" для июля.c: Самостоятельный день. Например, "2" для вторника.h: Час в AM/PM (1~12). Например, "3" для 3:00 утра.H: Час в дне (0~23). Например, "15" для 15:00.S: Дробная секунда. Например, "123" для 123 миллисекунд.D: День в году. Например, "50" для 50-го дня года.a: Маркер AM/PM. Например, "AM" или "PM".k: Час в дне (1~24). Например, "24" для полуночи.K: Час в AM/PM (0~11). Например, "0" для 12:00 ночи.Q: Квартал. Например, "4" для четвертого квартала.
Для получения более подробной информации обратитесь к документации класса DateFormat.

Current Device Location
Это свойство используется для получения текущего местоположения устройства (геолокации). Доступ к нему возможен, когда Source установлен в Global Properties.
Вы можете использовать это свойство для получения текущего местоположения пользователя с целью обновления на Google Maps или сохранения в базе данных на сервере.
На данный момент тестирование этого свойства в режиме Test невозможно, но вы можете использовать режим Run. Для запуска на платформах Android, iOS или desktop используйте Local Run.
Get Current Device Location: Example
Рассмотрим пример получения текущего местоположения устройства и передачи его в виджет (который поддерживает прием LatLong, например, Google Maps).
Вот пример того, как вы можете получить текущее местоположение устройства:
- Выберите виджет (например, GoogleMap) в дереве виджетов или на холсте.
- Перейдите в панель свойств, найдите свойство Initial Location и нажмите Set from Variable.
- Установите Source в Global Properties.
- Установите Available Options в Current Device Location.
- Нажмите Confirm.
Save the Current Device Location: Example
Вот как вы можете сохранить текущее местоположение пользователя (геолокацию) в документе Firestore.
- Создайте поле LatLng в схеме Firestore.
- После этого установите это поле из источника переменной и выберите Current Device Location из Global Properties.
Is Android/iOS/Web
Используйте эти свойства, когда хотите адаптировать пользовательский опыт под конкретные платформы. Эти свойства определяют, использует ли пользователь приложение на Android, iOS или в веб-браузере. Знание платформы пользователя необходимо для настройки функциональности под каждую среду. Например, определенные пользовательские виджеты или действия могут быть эксклюзивными для Android.
Эти свойства позволяют реализовывать функции, специфичные для платформы, и обеспечивать оптимальную работу приложения на разных устройствах. Некоторые примеры:
-
Is Android: Включите пользовательскую функцию push-уведомлений, которая работает только на устройствах Android. Проверив, является ли платформа Android, вы можете условно отобразить экран настройки для этой функции.
-
Is iOS: Оптимизируйте пользовательские анимации или жесты специально для iOS. Обнаружив, что пользователь на устройстве iOS, вы можете включить эти взаимодействия, специфичные для iOS, предоставив альтернативы для других платформ.
-
Is Web: Реализуйте функцию загрузки файлов с интерфейсом drag-and-drop, оптимизированным для десктопных сред. Проверив, является ли платформа Web, вы можете предоставить улучшенный опыт работы с файлами, подходящий для пользователей веба.
Is On Screen Keyboard Visible
Это свойство помогает проверить, отображается ли на экране экранная или программная клавиатура. Доступ к нему возможен, когда Source установлен в Global Properties.
Hiding bottom navigation bar when a keyboard is visible: Example
Представьте приложение, где пользователи могут вводить данные о собаках, и присутствует пользовательская нижняя панель навигации. Когда пользователи вводят данные о собаке, появляется экранная клавиатура, из-за чего нижняя панель навигации перекрывает клавиатуру. Чтобы оптимизировать пространство экрана и улучшить пользовательский опыт, вы можете скрыть нижнюю панель навигации в таких случаях.
Вот как это выглядит:
Чтобы реализовать такое поведение, вы можете добавить условную видимость на нижнюю панель навигации. При добавлении используйте "Is On-Screen Keyboard Visible", чтобы скрывать нижнюю панель навигации всякий раз, когда отображается клавиатура. Using "Is On-Screen Keyboard Visible" to hide bottom navigation