Flutter SDK - Отслеживание экранов и представлений
Когда analytics включён (по умолчанию), трекер самостоятельно фиксирует нажатия, свайпы, изменения области просмотра и события ввода. Экраны и отдельные представления передаются с помощью двух экспортируемых виджетов.
Экраны
Section titled ЭкраныДобавьте ORNavigatorObserver в навигатор вашего приложения, чтобы записывать переходы между маршрутами:
import 'package:openreplay/openreplay.dart';
MaterialApp(
navigatorObservers: [ORNavigatorObserver()],
// ...
)
Передаются все операции: push, pop, замена и удаление маршрутов. Имя маршрута берётся из route.settings.name; для безымянного маршрута используется его позиция в стеке (route/2), поэтому именованные маршруты делают временную шкалу гораздо более читаемой.
Отслеживаемые представления
Section titled Отслеживаемые представленияОберните любой виджет в ORTrackedView, чтобы передавать его как именованное наблюдаемое представление. Событие видимости отправляется при его монтировании и размонтировании, а его имя используется как метка для касаний, попадающих внутрь него.
screenName: String— название экрана или функцииviewName: String— имя отслеживаемого представления
import 'package:openreplay/openreplay.dart';
ORTrackedView(
screenName: 'Checkout',
viewName: 'Pay button',
child: ElevatedButton(onPressed: _pay, child: const Text('Pay')),
)
Касания
Section titled КасанияНажатия и свайпы фиксируются через глобальный маршрут pointer router, поэтому трекер видит каждое событие указателя, никогда не участвуя в gesture arena, — он не может перехватить нажатие, которое нужно вашему приложению. Указатель, переместившийся более чем на 10 логических пикселей, записывается как свайп с преобладающим направлением, всё, что короче, — как клик.
Метки касаний берутся из hit-тестирования текста под указателем или из охватывающего ORTrackedView.
Остались вопросы?
Section titled Остались вопросы?Если у вас есть какие-либо вопросы об этом процессе, не стесняйтесь обращаться к нам в нашем Slack или загляните на наш Форум.