Flutter百度移动统计插件flutter_baidu_mob_stat的使用
Flutter百度移动统计插件flutter_baidu_mob_stat
的使用
百度移动统计Flutter插件
百度移动统计Flutter插件可以帮助开发者快速集成百度移动统计功能到Flutter应用中,用于跟踪用户行为、事件及页面访问等。
开始使用
注册key
在使用插件之前,需要先注册API Key。通过以下代码可以完成初始化:
Future<void> fun() async {
final bool key = await FlBaiduMobStat().setApiKey(
androidKey: 'androidKey', iosKey: 'iosKey');
print('初始化是否成功:$key');
}
设置channel(可选)
可以通过以下代码设置应用渠道名称:
Future<void> fun() async {
final bool channel = await FlBaiduMobStat().setAppChannel(channelName);
print('设置channel:$channelName = $channel');
}
设置version(可选)
设置应用版本号:
Future<void> fun() async {
final bool version = await FlBaiduMobStat().setAppVersionName('1.0.0');
print('设置version name:$version');
}
是否开启debug模式(可选)
开启调试模式以便查看日志信息:
Future<void> fun() async {
final bool debug = await FlBaiduMobStat().setDebug(true);
print('设置是否开启debug模式:$debug');
}
获取SDK生成的设备的测试ID
获取设备的测试ID:
Future<void> fun()async{
final String? id = await FlBaiduMobStat().getTestDeviceId();
}
获取SDK生成的设备的cuId(仅限Android)
获取设备的cuId:
Future<void> fun()async{
final String? id = await FlBaiduMobStat().getDeviceCuId();
}
记录一次事件的点击
记录事件点击:
Future<void> fun()async{
final bool state = await FlBaiduMobStat().logEvent(
eventId: 'Event1',
attributes: {'k1': 'v1', 'k2': 'v2'});
}
记录一次事件的时长
记录事件的持续时间:
Future<void> fun()async{
final bool state = await FlBaiduMobStat().logDurationEvent(
eventId: 'Event2',
duration: 3000,
label: 'event',
attributes: {'k1': 'v1'});
}
记录一次事件的开始
记录事件的开始:
Future<void> fun()async{
final bool state = await FlBaiduMobStat().eventStart(eventId: 'Event3');
}
记录一次事件的结束
记录事件的结束:
Future<void> fun()async{
final bool state = await FlBaiduMobStat().eventEnd(
eventId: 'Event3',
attributes: {'k1': 'v1'});
}
记录某个页面访问的开始
记录页面访问的开始:
Future<void> fun()async{
final bool state = await FlBaiduMobStat().pageStart('AnotherPage');
}
记录某个页面访问的结束
记录页面访问的结束:
Future<void> fun()async{
final bool state = await FlBaiduMobStat().pageEnd('AnotherPage');
}
完整示例Demo
以下是一个完整的示例代码,展示了如何使用flutter_baidu_mob_stat
插件:
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_baidu_mob_stat/fl_baidu_mob_stat_ys.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化API Key
final bool key = await FlBaiduMobStatYs()
.setApiKey(androidKey: 'androidKey', iosKey: 'iosKey');
debugPrint('初始化是否成功:$key');
// 设置渠道名称
String channelName = 'flutter';
if (Platform.isAndroid) channelName += '- Android';
if (Platform.isIOS) channelName += '- IOS';
final bool channel = await FlBaiduMobStatYs().setAppChannel(channelName);
debugPrint('设置channel:$channelName = $channel');
// 设置版本号
final bool version = await FlBaiduMobStatYs().setAppVersionName('1.0.0');
debugPrint('设置version name:$version');
// 开启调试模式
final bool debug = await FlBaiduMobStatYs().setDebug(true);
debugPrint('设置是否开启debug模式:$debug');
runApp(MaterialApp(
home: _MyApp(),
debugShowCheckedModeBanner: false,
title: 'FlBaiduMobStatYs',
));
}
class _MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<_MyApp> {
bool _eventStartEndButtonSelected = false;
String text = '';
// 获取设备的cuId
Future<void> _getDeviceCuId() async {
final String? cuId = await FlBaiduMobStatYs().getDeviceCuId();
if (cuId == null) return;
text = 'CuId:\n' + cuId;
setState(() {});
}
// 获取设备的测试ID
Future<void> _getTestDeviceId() async {
final String? id = await FlBaiduMobStatYs().getTestDeviceId();
if (id == null) return;
text = 'TestId\n' + id;
setState(() {});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('FlBaiduMobStatYs Example')),
body: Center(
child: Column(children: <Widget>[
Container(height: 100, child: Text(text), alignment: Alignment.center),
ElevatedButton(
child: const Text('logEvent'),
onPressed: () async {
final bool state = await FlBaiduMobStatYs().logEvent(
eventId: 'Event1',
attributes: {'k1': 'v1', 'k2': 'v2'});
text = 'logEvent: $state';
setState(() {});
}),
ElevatedButton(
child: const Text('logDurationEvent'),
onPressed: () async {
final bool state = await FlBaiduMobStatYs().logDurationEvent(
eventId: 'Event2',
duration: 3000,
label: 'event',
attributes: {'k1': 'v1'});
text = 'logDurationEvent: $state';
setState(() {});
}),
ElevatedButton(
child: Text(_eventStartEndButtonSelected ? 'eventEnd' : 'eventStart'),
onPressed: () async {
_eventStartEndButtonSelected = !_eventStartEndButtonSelected;
if (_eventStartEndButtonSelected) {
final bool state = await FlBaiduMobStatYs().eventStart(eventId: 'Event3');
text = 'eventStart: $state';
} else {
final bool state = await FlBaiduMobStatYs().eventEnd(
eventId: 'Event3',
attributes: {'k1': 'v1'});
text = 'eventEnd: $state';
}
setState(() {});
}),
ElevatedButton(
child: const Text('open page'),
onPressed: () async {
final bool state = await FlBaiduMobStatYs().pageStart('AnotherPage');
text = 'pageStart: $state';
setState(() {});
}),
ElevatedButton(
child: const Text('close page'),
onPressed: () async {
final bool state = await FlBaiduMobStatYs().pageEnd('AnotherPage');
text = 'pageEnd: $state';
setState(() {});
}),
ElevatedButton(
child: const Text('getDeviceCuId'), onPressed: _getDeviceCuId),
ElevatedButton(
child: const Text('getTestDeviceId'),
onPressed: _getTestDeviceId),
]),
),
);
}
}
更多关于Flutter百度移动统计插件flutter_baidu_mob_stat的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter百度移动统计插件flutter_baidu_mob_stat的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_baidu_mob_stat
是一个 Flutter 插件,用于集成百度移动统计(Baidu Mobile Statistics)到你的 Flutter 应用中。通过该插件,你可以方便地收集和分析应用的用户行为数据,帮助你更好地了解用户的使用习惯和优化应用。
以下是 flutter_baidu_mob_stat
插件的基本使用方法:
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 flutter_baidu_mob_stat
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_baidu_mob_stat: ^latest_version
然后运行 flutter pub get
来获取依赖。
2. 配置百度移动统计
在百度移动统计平台上创建一个应用,并获取到 App Key
和 App Secret
。
3. 初始化插件
在你的 Flutter 应用的 main.dart
文件中,初始化 flutter_baidu_mob_stat
插件:
import 'package:flutter/material.dart';
import 'package:flutter_baidu_mob_stat/flutter_baidu_mob_stat.dart';
void main() {
// 初始化百度移动统计
FlutterBaiduMobStat.init('your_app_key', 'your_app_secret');
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
4. 事件统计
你可以使用 FlutterBaiduMobStat
提供的 API 来记录用户的行为事件。例如:
import 'package:flutter/material.dart';
import 'package:flutter_baidu_mob_stat/flutter_baidu_mob_stat.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Welcome to Flutter!',
),
ElevatedButton(
onPressed: () {
// 记录一个自定义事件
FlutterBaiduMobStat.logEvent('button_click', {'button_name': 'welcome_button'});
},
child: Text('Click Me'),
),
],
),
),
);
}
}
5. 页面统计
flutter_baidu_mob_stat
插件还支持自动页面统计。你可以在 MaterialApp
的 navigatorObservers
中添加 FlutterBaiduMobStatObserver
,以便自动记录页面的访问情况:
void main() {
// 初始化百度移动统计
FlutterBaiduMobStat.init('your_app_key', 'your_app_secret');
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
navigatorObservers: [FlutterBaiduMobStatObserver()],
);
}
}