Flutter数据分析插件janalytics的使用
Flutter数据分析插件janalytics的使用
安装
在工程 pubspec.yaml
文件中加入依赖:
dependencies:
janalytics: 2.1.5
配置
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", // 暂时填写默认值即可.
]
}
}
使用
首先引入插件:
import 'package:janalytics/janalytics.dart';
示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 janalytics 插件。
import 'package:flutter/material.dart';
import 'dart:async';
import "package:package_info/package_info.dart";
import 'viewpage.dart';
import 'demo_utils.dart';
import 'package:janalytics/janalytics.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) {
// TODO: implement build
return MaterialApp(
home: HomeActivity(),
);
}
}
class HomeActivity extends StatefulWidget {
[@override](/user/override)
State<StatefulWidget> createState() {
// TODO: implement 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() {
// TODO: implement 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 {
janalytics.setup(appKey: "e58a32cb3e4469ebf31867e5", channel: "devloper-default"); // 初始化 SDK
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) {
// TODO: implement didChangeAppLifecycleState
super.didChangeAppLifecycleState(state);
print("page fragemnt 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 new Container(
padding: EdgeInsets.all(20),
child: new Column(
children: <Widget>[
new Container(
width: double.infinity,
margin: EdgeInsets.all(20),
child: new Text(
"$debugLabel\n ",
textAlign: TextAlign.left,
style: TextStyle(color: Colors.grey, fontSize: 16),
),
alignment: Alignment.centerLeft,
),
DemoUtils.createButton("统计示例(ViewPage)", () {
Navigator.push(context, new MaterialPageRoute(builder: (ctx) {
return new ViewPageScreen();
}));
}),
DemoUtils.createButton("统计示例(Show/Hide)", () {
Navigator.push(context, new MaterialPageRoute(builder: (ctx) {
return new ShowHidePage();
}));
}),
DemoUtils.createButton("统计示例(Replace)", () {
Navigator.push(context, new MaterialPageRoute(builder: (ctx) {
return new ReplacePage();
}));
}),
DemoUtils.createButton("统计示例(账号)", () {
Navigator.push(context, new MaterialPageRoute(builder: (ctx) {
return new AccountPage();
}));
}),
],
),
);
}),
backgroundColor: Color(0xff303030),
),
);
}
}
更多关于Flutter数据分析插件janalytics的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter数据分析插件janalytics的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
janalytics
是极光推送(JPush)提供的一个用于数据统计和分析的 Flutter 插件。它可以帮助开发者收集和分析应用的用户行为数据,从而更好地优化产品和运营策略。
1. 安装 janalytics
插件
首先,你需要在 pubspec.yaml
文件中添加 janalytics
插件的依赖:
dependencies:
janalytics: ^latest_version
然后运行 flutter pub get
来安装插件。
2. 初始化 janalytics
在使用 janalytics
之前,你需要在应用启动时进行初始化。通常在 main.dart
文件中进行初始化:
import 'package:janalytics/janalytics.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 janalytics
await Janalytics().setup(
appKey: 'your_app_key', // 替换为你的极光 AppKey
channel: 'your_channel', // 替换为你的渠道名称
);
runApp(MyApp());
}
3. 配置 Android 和 iOS
Android
在 android/app/build.gradle
文件中,确保你启用了 multidex
并添加了极光推送的依赖:
android {
defaultConfig {
multiDexEnabled true
}
}
dependencies {
implementation 'cn.jiguang.sdk:janalytics:latest_version'
implementation 'cn.jiguang.sdk:jcore:latest_version'
}
在 AndroidManifest.xml
中添加必要的权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
iOS
在 ios/Runner/Info.plist
文件中,添加以下配置:
<key>JAnalytics</key>
<dict>
<key>Channel</key>
<string>your_channel</string>
<key>AppKey</key>
<string>your_app_key</string>
</dict>
4. 使用 janalytics
进行数据统计
janalytics
提供了多种方法来统计用户行为数据,包括页面浏览、事件统计、用户登录等。
页面浏览统计
Janalytics().onPageStart('page_name'); // 开始页面统计
Janalytics().onPageEnd('page_name'); // 结束页面统计
事件统计
Janalytics().logEvent({
'eventId': 'event_id',
'parameters': {'key1': 'value1', 'key2': 'value2'},
});
用户登录统计
Janalytics().identifyAccount({
'userId': 'user_id',
'parameters': {'key1': 'value1', 'key2': 'value2'},
});
用户注册统计
Janalytics().registerAccount({
'userId': 'user_id',
'parameters': {'key1': 'value1', 'key2': 'value2'},
});
用户信息更新
Janalytics().updateAccount({
'userId': 'user_id',
'parameters': {'key1': 'value1', 'key2': 'value2'},
});
用户登出统计
Janalytics().logoutAccount();