Flutter数据分析与监控插件janalyticsplub的使用
Flutter数据分析与监控插件janalyticsplub的使用
安装
在工程 pubspec.yaml 文件中加入依赖项:
dependencies:
janalyticsplub: 2.1.9
或者如果你更倾向于从 GitHub 获取最新版本:
dependencies:
flutter_plugin_engagelab:
git:
url: git://github.com/jpush/janalytics-flutter-plugin.git
ref: master
配置
Android:
在 android/app/build.gradle 文件中添加以下代码:
android {
...
defaultConfig {
applicationId "替换成自己应用 ID"
...
ndk {
// 选择要添加的对应 CPU 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "appkey", // NOTE: JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", // 暂时填写默认值即可.
]
}
}
使用
首先在你的 Dart 文件中导入插件:
import 'package:janalyticsplub/janalyticsplub.dart';
示例代码
以下是一个完整的示例,展示了如何在 Flutter 应用中使用 janalyticsplub 插件进行数据分析与监控。
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:package_info/package_info.dart';
import 'viewpage.dart';
import 'demo_utils.dart';
import 'package:janalyticsplub/janalyticsplub.dart';
import 'show_hide_page.dart';
import 'replace_page.dart';
import 'account_page.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomeActivity(),
);
}
}
class HomeActivity extends StatefulWidget {
[@override](/user/override)
State<StatefulWidget> createState() {
return HomeActivityState();
}
}
class HomeActivityState extends State<HomeActivity> with WidgetsBindingObserver {
String debugLabel = 'Unknown';
final Janalytics janalytics = new Janalytics();
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
[@override](/user/override)
void dispose() {
super.dispose();
// 页面统计事件,在需要统计页面的 dispose 方法里调用 onPageEnd
janalytics.onPageEnd(widget.runtimeType.toString());
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
// 初始化 SDK
janalytics.setup(
appKey: "e58a32cb3e4469ebf31867e5",
channel: "devloper-default"
);
janalytics.setDebugMode(true); // 打开调试模式
// 如果小部件从树中被移除且异步平台消息正在飞行,则我们希望丢弃回复而不是调用 setState 更新我们的非存在外观。
if (!mounted) return;
// 页面统计事件,在 initState 方法中调用 onPageStart
janalytics.onPageStart(widget.runtimeType.toString());
try {
PackageInfo info = await PackageInfo.fromPlatform();
String appInfo = '应用名: ${info.appName}\n包名:${info.packageName}\n版本:${info.version}';
setState(() {
debugLabel = appInfo;
});
} on Exception catch (e) {
print('init error:$e');
}
}
[@override](/user/override)
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
print("page fragment didChangeAppLifecycleState");
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
backgroundColor: Color(0xff212121),
),
body: Builder(builder: (BuildContext context) {
return Container(
padding: EdgeInsets.all(20),
child: Column(
children: <Widget>[
Container(
width: double.infinity,
margin: EdgeInsets.all(20),
child: Text(
"$debugLabel\n",
textAlign: TextAlign.left,
style: TextStyle(color: Colors.grey, fontSize: 16),
),
alignment: Alignment.centerLeft,
),
DemoUtils.createButton("统计示例(ViewPage)", () {
Navigator.push(context, MaterialPageRoute(builder: (ctx) {
return ViewPageScreen();
}));
}),
DemoUtils.createButton("统计示例(Show/Hide)", () {
Navigator.push(context, MaterialPageRoute(builder: (ctx) {
return ShowHidePage();
}));
}),
DemoUtils.createButton("统计示例(Replace)", () {
Navigator.push(context, MaterialPageRoute(builder: (ctx) {
return ReplacePage();
}));
}),
DemoUtils.createButton("统计示例(账号)", () {
Navigator.push(context, MaterialPageRoute(builder: (ctx) {
return AccountPage();
}));
}),
],
),
);
}),
backgroundColor: Color(0xff303030),
),
);
}
}
更多关于Flutter数据分析与监控插件janalyticsplub的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter数据分析与监控插件janalyticsplub的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
janalyticsplugin 是 Flutter 中用于集成 极光分析(JAnalytics) 的插件。极光分析是极光推送(JPush)提供的一个数据分析工具,用于帮助开发者收集和分析用户行为数据,从而优化产品体验。
以下是如何在 Flutter 项目中使用 janalyticsplugin 的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml 文件中添加 janalyticsplugin 依赖:
dependencies:
flutter:
sdk: flutter
janalyticsplugin: ^latest_version
然后运行 flutter pub get 来安装依赖。
2. 配置 Android
在 android/app/build.gradle 文件中,确保已经配置了极光推送的 AppKey 和其他必要设置:
android {
...
defaultConfig {
...
manifestPlaceholders = [
JPUSH_APPKEY: "your_jpush_appkey", // 极光推送的 AppKey
JPUSH_CHANNEL: "developer-default" // 渠道名称
]
}
}
3. 配置 iOS
在 ios/Runner/Info.plist 文件中,添加极光推送的 AppKey:
<key>JPUSH_APPKEY</key>
<string>your_jpush_appkey</string>
<key>JPUSH_CHANNEL</key>
<string>developer-default</string>
4. 初始化插件
在 main.dart 中初始化 janalyticsplugin:
import 'package:janalyticsplugin/janalyticsplugin.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化极光分析
await Janalyticsplugin.setup(
appKey: 'your_jpush_appkey',
channel: 'developer-default',
);
runApp(MyApp());
}
5. 使用插件
5.1 记录事件
你可以使用 Janalyticsplugin 来记录各种用户事件,例如页面浏览、自定义事件等。
// 记录页面浏览事件
Janalyticsplugin.onPageStart('HomePage');
// 记录页面结束事件
Janalyticsplugin.onPageEnd('HomePage');
// 记录自定义事件
Janalyticsplugin.onEvent({
'eventId': 'button_click',
'parameters': {'button_name': 'submit'},
});
5.2 用户属性
你可以设置用户属性,例如用户 ID、性别、年龄等。
// 设置用户ID
Janalyticsplugin.setUserId('123456');
// 设置用户属性
Janalyticsplugin.setUserProfile({
'gender': 'male',
'age': 25,
});
5.3 崩溃日志
极光分析还支持自动捕获崩溃日志。
// 启用崩溃日志捕获
Janalyticsplugin.crashLogON();

