Перейти к основному содержимому

Клиентские библиотеки

Адаптеры фреймворков

Обёртка для Flutter

Запуск телеметрии, зависящий от окружения, и наблюдатель навигации поверх клиента Dart. Он ничего не делает, пока нет и хоста, и публичного ключа.

Где опубликован

prodantix_sdk_flutter on pub.dev. It wraps prodantix_sdk.

Установка

Bash
flutter pub add prodantix_sdk_flutter

Зависит от окружения

fromEnv возвращает рабочий клиент только тогда, когда есть и хост, и публичный ключ, и ключ имеет правильную форму. В остальных случаях возвращается тихая заглушка, поэтому приложение выпускается точно так же без учётных данных приёма, а неверный ключ сообщается через onError, а не роняет приложение при запуске.

Dart
import 'package:prodantix_sdk_flutter/prodantix_sdk_flutter.dart';

final telemetry = Telemetry.fromEnv(
  host: const String.fromEnvironment('PRODANTIX_HOST'),
  key: const String.fromEnvironment('PRODANTIX_PUBLIC_KEY'),
  onError: (error) => debugPrint('prodantix: $error'),
);

telemetry.identify('user-123');
telemetry.track('app.opened', properties: {'source': 'cold_start'});

await telemetry.shutdown();

Отслеживание экранов

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

Dart
MaterialApp(
  navigatorObservers: [TelemetryRouteObserver(telemetry)],
  home: const HomePage(),
);

// Or, with go_router:
GoRouter(
  observers: [TelemetryRouteObserver(telemetry)],
  routes: routes,
);
Этот пакет зависит от prodantix_sdk по диапазону версий, а не по пути, потому что pub.dev отклоняет пакет с зависимостью по пути. Поэтому клиент Dart должен попасть на pub.dev раньше этого пакета.