Flutter SDK - Отслеживание экранов и представлений

Подробности об отслеживании экранов и представлений с помощью трекера Flutter

Flutter SDK ⁠-⁠ Отслеживание экранов и представлений

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

Добавьте 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')),
)

Нажатия и свайпы фиксируются через глобальный маршрут pointer router, поэтому трекер видит каждое событие указателя, никогда не участвуя в gesture arena, — он не может перехватить нажатие, которое нужно вашему приложению. Указатель, переместившийся более чем на 10 логических пикселей, записывается как свайп с преобладающим направлением, всё, что короче, — как клик.

Метки касаний берутся из hit-тестирования текста под указателем или из охватывающего ORTrackedView.

Остались вопросы?

Section titled Остались вопросы?

Если у вас есть какие-либо вопросы об этом процессе, не стесняйтесь обращаться к нам в нашем Slack или загляните на наш Форум.