AppRouter: States
В блоке States описаны публичные функции для переключения между стейтами приложения. Для переключения на некоторые из них должны быть соблюдены определенные условия (например, построен путь или задана точка назначения). При попытке перейти на стейт с нарушением этих условий, переход не будет осуществлен, а в консоль будет выведена ошибка с рекомендацией по ее исправлению. Стандартное поведения для каждого стейта в определенных ситуациях может быть переопределено путем передачи в функцию перехода соответствующего callback. Список возможных к переопределению колбеков задан в аргументах функций перехода на тот или иной стейт. При callback == null
будет использоваться стандартное поведение.
Имена функций сформированы по шаблону “SwitchTo<Название_стейта>”. Список функций блока States и соответствующих стейтов:
Название функции | Обязательные аргументы и callbacks | Требования | Функционал стейта |
---|---|---|---|
SwitchToChoosePoint | onChoosePointCallback – выбрана точка назначения; OnCancelCallback – нажатие системной кнопки “Назад” | - | Выбор точки назначения из списка доступных |
SwitchToScan | onLocalizeCallback – локализация прошла успешно; OnCancelCallback – локализация отменена | - | Указание пользователю действий для определения его местоположения |
SwitchToWalk | onCancelCallback – проход по маршруту отменен; onPathFindingFailCallback – ошибка перестроения маршрута при сходе с него; onPointReachedCallback – точка назначения достигнута | Есть построенный путь (BuildPath) | Указание пользователю следовать по линии навигации в AR до точки назначения |
SwitchToArrival | onOkCallback – уход со стейта | Проинициализирована точка назначения (SetTargetPoint) | Сообщение о достижении точки назначения |
SwitchToRestore | onRestoreCallback – выбрано восстановление маршрута; onCancelCallback – выбрана отмена маршрута | Проинициализирована точка назначения (SetTargetPoint) | Сообщение о потере маршрута и предложение построить путь к выбранной точке заново |
Помимо этого, этот блок содержит функцию QuitApplication – закрытие приложения.
Приватная функция OnTrackingLostHandler вызывается при событии потери трекинга (например, если пользователь свернул приложение и трекинг ARKit / ARCore перешел в режим ожидания). Подписка происходит при инициализации AppRouter. Поведение по умолчанию: при наличии построенного пути выполняется переход на RestoreState, в противном случае на ChoosePointState.