跳到主要内容

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();

页面追踪

把观察器加到你的导航器上,每一次压入或替换的路由都会上报一个页面事件,与 Web SDK 的页面浏览自动采集相对应。没有名字的路由会被跳过。

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,这个包才能发布。