Flutter插件flutter_oewa的使用_flutter_oewa 是一个Flutter插件,它封装了OEWA的Android和iOS SDK
Flutter插件flutter_oewa的使用_flutter_oewa 是一个Flutter插件,它封装了OEWA的Android和iOS SDK
1. 插件概述
flutter_oewa
是一个Flutter插件,它封装了OEWA的Android和iOS SDK。通过这个插件,开发者可以轻松地在Flutter应用中集成OEWA的功能,包括事件日志记录、GDPR合规性等功能。
2. 主要功能
- 事件日志记录:插件提供了丰富的预定义事件类型,开发者可以通过这些事件来跟踪用户行为,如页面浏览、视频播放、广告点击等。
- GDPR合规性:插件内置了
optOut
和optIn
方法,帮助开发者确保应用程序符合GDPR要求,用户可以选择是否允许数据跟踪。 - 调试模式:开发者可以在开发过程中启用调试模式,以便查看详细的日志信息。
- 会话管理:插件支持初始化、终止和重新启动会话,确保数据的准确性和一致性。
3. 完整示例Demo
以下是一个完整的示例代码,展示了如何在Flutter应用中使用flutter_oewa
插件进行事件跟踪和GDPR合规性管理。
import 'package:flutter/material.dart';
import 'package:flutter_oewa/flutter_oewa.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
initOewa();
}
bool _optOut = false;
// 初始化OEWA会话
Future<void> initOewa() async {
// 定义你的唯一供应商ID(从你的OEWA账户获取)
const offerIdentifier = 'my_company_key';
// 是否在开发时启用调试日志
const debugMode = true;
// 启动会话
await Oewa.initIOLSession(
offerIdentifier,
debugMode: debugMode,
optOutState: false, // 默认不启用opt-out
privacyMode: true, // 启用隐私模式
);
}
// 记录页面浏览事件
void logPageView() {
Oewa.logEvent(
OewaViewEvent.appeared(
category: 'article',
comment: 'This is a test page view',
customParams: {
'articleId': 123,
'slug': 'test-article',
},
),
);
}
// 记录视频播放事件
void logVideoPlay() {
Oewa.logEvent(
OewaVideoEvent.play(
category: 'video',
customParams: {
'videoUrl': 'https://example.com/video.mp4',
},
),
);
}
// 记录自定义事件
void logCustomEvent() {
Oewa.logEvent(
OewaEvent(
identifier: 'custom_event',
state: 'triggered',
category: 'user_action',
customParams: {
'action': 'button_click',
'value': 42,
},
),
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('flutter_oewa 示例'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
const Text(
'检查日志以查看请求是否发出!',
),
ElevatedButton(
onPressed: logPageView,
child: const Text('记录页面浏览事件'),
),
ElevatedButton(
onPressed: logVideoPlay,
child: const Text('记录视频播放事件'),
),
ElevatedButton(
onPressed: logCustomEvent,
child: const Text('记录自定义事件'),
),
if (_optOut == false)
ElevatedButton(
onPressed: () async {
// 退出跟踪
await Oewa.optOut();
final newOptOutState = await Oewa.getOptOutStatus();
setState(() {
_optOut = newOptOutState;
});
},
child: const Text('退出跟踪 (Opt Out)'),
),
if (_optOut == true)
ElevatedButton(
onPressed: () async {
// 重新启用跟踪
await Oewa.optIn(offerIdentifier: 'my_company_key');
final newOptOutState = await Oewa.getOptOutStatus();
setState(() {
_optOut = newOptOutState;
});
},
child: const Text('重新启用跟踪 (Opt In)'),
),
],
),
),
),
);
}
}
4. 详细说明
4.1 初始化会话
在应用启动时,调用Oewa.initIOLSession
方法来初始化OEWA会话。你需要提供一个唯一的offerIdentifier
,这是你在OEWA账户中获得的供应商ID。此外,你还可以选择是否启用调试模式(debugMode
),以及是否默认启用optOut
状态。
await Oewa.initIOLSession(
offerIdentifier,
debugMode: debugMode,
optOutState: false,
privacyMode: true,
);
4.2 记录事件
插件提供了多种方式来记录事件,最常见的是使用预定义的事件类。例如,你可以记录页面浏览事件、视频播放事件或自定义事件。
-
页面浏览事件:
Oewa.logEvent( OewaViewEvent.appeared( category: 'article', comment: 'This is a test page view', customParams: { 'articleId': 123, 'slug': 'test-article', }, ), );
-
视频播放事件:
Oewa.logEvent( OewaVideoEvent.play( category: 'video', customParams: { 'videoUrl': 'https://example.com/video.mp4', }, ), );
-
自定义事件:
Oewa.logEvent( OewaEvent( identifier: 'custom_event', state: 'triggered', category: 'user_action', customParams: { 'action': 'button_click', 'value': 42, }, ), );
4.3 GDPR合规性管理
插件提供了optOut
和optIn
方法,帮助开发者实现GDPR合规性。用户可以选择退出或重新启用数据跟踪。
-
退出跟踪:
await Oewa.optOut();
-
重新启用跟踪:
await Oewa.optIn(offerIdentifier: 'my_company_key');
-
获取当前的opt-out状态:
final isOptedOut = await Oewa.getOptOutStatus();
4.4 调试模式
在开发过程中,你可以启用调试模式来查看详细的日志信息。这有助于调试和验证事件是否正确发送。
await Oewa.setDebugModeEnabled(true);
4.5 强制发送事件
默认情况下,事件是批量发送的。如果你希望立即发送所有已记录的事件,可以调用sendLoggedEvents
方法。
await Oewa.sendLoggedEvents();
4.6 终止会话
如果你想在运行时终止当前的OEWA会话,可以调用terminateSession
方法。这将取消所有未发送的事件,并停止进一步的数据收集。
await Oewa.terminateSession();
4.7 重新启动会话
如果之前终止了会话,你可以随时通过startSession
方法重新启动会话。
await Oewa.startSession('my_company_key');
更多关于Flutter插件flutter_oewa的使用_flutter_oewa 是一个Flutter插件,它封装了OEWA的Android和iOS SDK的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html