Flutter连接状态跟踪插件flutter_connecttracker的使用
Flutter连接状态跟踪插件flutter_connecttracker的使用
开始使用移动应用跟踪 - Flutter
安装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
更多关于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" />