Flutter连接状态跟踪插件flutter_connecttracker的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter连接状态跟踪插件flutter_connecttracker的使用

开始使用移动应用跟踪 - Flutter

CircleCI
版本

安装ConnecTracker SDK

将移动应用跟踪集成到您的应用中

import 'package:flutter_connecttracker/connecttracker.dart';
import 'package:flutter_connecttracker/connecttracker_options.dart';
...

var options = ConnectTrackerOptions("android_app_key", "ios_app_key");
final initialized =  await ConnectTracker.instance.init(options) ?? false;

使用更多选项进行初始化

import 'package:flutter_connecttracker/connecttracker.dart';
import 'package:flutter_connecttracker/connecttracker_options.dart';
...


var options = ConnectTrackerOptions("android_app_key", "ios_app_key");
// 禁用或启用广告ID跟踪(在两个平台上)
options.isAdIdTrackingDisabled = true;
// 请求iOS上的应用跟踪权限
options.requestAppTrackingPermission = true;
// 在两个平台上启用位置服务回调。
options.useLocation = true;
// 设置推送通知
options.usePushNotifications = true;
// 设置沙盒模式(适用于两个平台)
options.isSandbox = true;

final initialized =  await ConnectTracker.instance.init(options) ?? false;

运行应用在iOS模拟器或Android模拟器上,并检查app_open事件是否被发送到Connected Interactive仪表板。

深度链接方法

// 通知SDK该应用已通过深度链接打开
ConnectTracker.instance.appWillOpenUrl("schema://deeplink");

// 解析由电子邮件客户端生成的深度链接并将其传递给SDK
ConnectTracker.instance.resolveDeeplink("schema://deeplink", ["prefix1", "prefix2"]);

// 跟踪管理方法
// 关闭跟踪
ConnectTracker.instance.turnOffTracking();

// 打开跟踪
ConnectTracker.instance.turnOnTracking();

// 检查SDK是否已初始化
ConnectTracker.instance.isInitialized();

// 检查跟踪是否开启
ConnectTracker.instance.isTrackingOn();

// 从SDK中删除用户数据
ConnectTracker.instance.deleteUserData();

位置和服务权限方法

// 请求位置权限
ConnectTracker.instance.onWillRequestLocationPermission();

// 位置权限被拒绝
ConnectTracker.instance.onLocationPermissionDenied();

// 位置权限被授予
ConnectTracker.instance.onLocationPermissionGranted();

应用生命周期方法

// 应用程序处于暂停状态
ConnectTracker.instance.onApplicationPaused();

添加自定义事件

设置自定义事件跟踪

为了跟踪自定义事件,请在项目中添加以下代码:

ConnectTracker.instance.trackEvent("YOUR_EVENT_NAME", null)

如果要跟踪带有值的事件(例如货币价值),可以调用以下代码:

ConnectTracker.instance.trackEvent("YOUR_EVENT_NAME", "YOUR_VALUE")

为了启用事件回调,在调用ConnectTracker.instance.trackEvent之前设置ConnectTrackerOptions中的callbacks属性。

var options = ConnectTrackerOptions("android_app_key", "ios_app_key");
var callbacks = ConnectTrackerCallbacks();
options.callbacks = callbacks;

实现回调函数

callbacks.onSessionStartSuccess = (value) {
    // 处理值作为字典以获取会话开始详细信息
    print(value['trackingId']);
};
callbacks.onSessionStartFailed = (value) {
    // 处理值作为字典以获取会话开始详细信息
    print(value['trackingId']);
};

callbacks.onEventTracked = (value) {
    // 处理值作为字典以获取事件跟踪详细信息
    print(value['trackingId']);
};

callbacks.onEventTrackedFailed = (value) {
    // 处理值作为字典以获取事件跟踪失败详细信息
    print(value['trackingId']);
};

callbacks.onAppTrackingPermissionDenied = (value) {
    // value匹配iOS ATTrackingManagerAuthorizationStatusAuthorized常量(3)
    print(value);
};

callbacks.onAppTrackingPermissionDenied = (value) {
    // value匹配这些权限状态之一
    // ATTrackingManagerAuthorizationStatusNotDetermined(0), ATTrackingManagerAuthorizationStatusRestricted(1), ATTrackingManagerAuthorizationStatusDenied(3)
};

callbacks.onAttributionChanged = (value) {
    print(value['trackingId']);
};

示例代码

以下是完整的示例代码:

// example/lib/main.dart
import 'package:flutter/material.dart';

import 'package:flutter_connecttracker_example/first.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {  

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      routes: {
        '/': (context) {
          return const First(); 
        }
      }
    );
  }
}

更多关于Flutter连接状态跟踪插件flutter_connecttracker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter连接状态跟踪插件flutter_connecttracker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_connecttracker 是一个用于跟踪 Flutter 应用网络连接状态的插件。它可以帮助你监听设备的网络连接状态(如 Wi-Fi、移动数据、无网络等),并在连接状态发生变化时执行相应的操作。

以下是如何使用 flutter_connecttracker 插件的详细步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_connecttracker 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_connecttracker: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖包。

2. 导入插件

在你的 Dart 文件中导入 flutter_connecttracker 插件:

import 'package:flutter_connecttracker/flutter_connecttracker.dart';

3. 初始化插件

在使用插件之前,你需要先初始化它。通常可以在 main 函数中完成初始化:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FlutterConnectTracker.initialize();
  runApp(MyApp());
}

4. 监听连接状态

你可以使用 FlutterConnectTracker 来监听网络连接状态的变化。以下是一个简单的示例:

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _connectionStatus = 'Unknown';

  @override
  void initState() {
    super.initState();
    _initConnectionStatus();
    FlutterConnectTracker.onConnectivityChanged.listen((ConnectivityResult result) {
      setState(() {
        _connectionStatus = result.toString();
      });
    });
  }

  Future<void> _initConnectionStatus() async {
    ConnectivityResult result = await FlutterConnectTracker.checkConnectivity();
    setState(() {
      _connectionStatus = result.toString();
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Network Connection Tracker'),
        ),
        body: Center(
          child: Text('Connection Status: $_connectionStatus'),
        ),
      ),
    );
  }
}

5. 处理不同连接状态

ConnectivityResult 是一个枚举类型,表示设备当前的网络连接状态。它有以下几种可能的值:

  • ConnectivityResult.wifi:设备连接到 Wi-Fi。
  • ConnectivityResult.mobile:设备连接到移动数据网络。
  • ConnectivityResult.none:设备没有网络连接。

你可以根据这些状态来执行不同的操作。

6. 获取当前连接状态

你可以使用 FlutterConnectTracker.checkConnectivity() 方法来获取当前的网络连接状态:

ConnectivityResult result = await FlutterConnectTracker.checkConnectivity();
print('Current connection status: $result');

7. 停止监听

如果你不再需要监听网络连接状态的变化,可以取消监听:

FlutterConnectTracker.onConnectivityChanged.listen((ConnectivityResult result) {
  // 处理连接状态变化
}).cancel();

8. 处理权限

在某些平台上(如 Android),你需要在 AndroidManifest.xml 中添加网络权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!