Flutter数据分析插件flutter_analytics_piwik的使用
Flutter数据分析插件flutter_analytics_piwik的使用
SDK 配置
服务器
您需要在云端或本地环境中拥有一个 Piwik PRO 账户,您的移动应用将与之通信。详情请访问 Piwik PRO 网站。
客户端
运行此命令:
$ flutter pub add flutter_analytics_piwik
配置
在使用任何其他方法之前,您需要配置跟踪器。为此,您需要您的跟踪服务器的基本 URL 地址和网站 ID(您可以在网站界面的 Administration > Websites & apps > Installation 中找到它)。
修复
该包修复了原版包在 iOS 上遇到的问题。
使用
请检查示例文件夹中的内容。
要查看 /example
文件夹中的内容,请参考以下代码示例:
// ignore_for_file: avoid_print
import 'package:flutter/material.dart';
import 'package:flutter_analytics_piwik/flutter_piwikpro.dart';
import 'package:flutter_analytics_piwik/model/ecommerce_transaction_item.dart';
void main() {
final ecommerceTransactionItems = [
EcommerceTransactionItem(category: 'cat1', sku: 'sku1', name: 'name1', price: 20, quantity: 1),
EcommerceTransactionItem(category: 'cat2', sku: 'sku2', name: 'name2', price: 10, quantity: 1),
EcommerceTransactionItem(category: 'cat3', sku: 'sku3', name: 'name3', price: 30, quantity: 2),
];
// 替换为您的跟踪服务器的值
const String siteId = '0c0a8661-8c10-4f59-b8fc-1c926cbac184';
const String baseUrl = 'https://astralprojection.promilci.com';
final flutterPiwik = FlutterPiwikPro.sharedInstance;
runApp(MyApp(
ecommerceTransactionItems: ecommerceTransactionItems,
siteId: siteId,
baseUrl: baseUrl,
flutterPiwik: flutterPiwik,
));
}
class MyApp extends StatelessWidget {
const MyApp({
required this.ecommerceTransactionItems,
required this.siteId,
required this.baseUrl,
required this.flutterPiwik,
Key? key,
}) : super(key: key);
final List<EcommerceTransactionItem> ecommerceTransactionItems;
final String siteId;
final String baseUrl;
final FlutterPiwikPro flutterPiwik;
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
),
body: Padding(
padding: const EdgeInsets.only(left: 32.0, right: 32.0, bottom: 32.0),
child: Center(
child: SingleChildScrollView(
child: Column(
children: [
_buildTextWidget('配置跟踪器', () async {
try {
final result = await flutterPiwik.configureTracker(baseURL: baseUrl, siteId: siteId);
print(result);
} catch (exception) {
print(exception);
}
}),
_buildTextWidget('设置匿名化状态为真', () async {
final result = await flutterPiwik.setAnonymizationState(true);
print(result);
}),
_buildTextWidget(
'跟踪屏幕',
() async {
try {
final result = await flutterPiwik.trackScreen(screenName: "test", title: "test title");
print(result);
} catch (exception) {
print(exception);
}
},
),
_buildTextWidget('跟踪自定义事件', () async {
try {
final result = await flutterPiwik.trackCustomEvent(
action: 'test action',
category: 'test category',
name: 'test name',
path: 'test path',
value: 120);
print(result);
} catch (exception) {
print(exception);
}
}),
_buildTextWidget('跟踪异常', () async {
try {
final result =
await flutterPiwik.trackException(description: "描述异常", isFatal: false);
print(result);
} catch (exception) {
print(exception);
}
}),
_buildTextWidget('跟踪下载', () async {
try {
final result = await flutterPiwik.trackDownload('http://your.server.com/bonusmap2.zip');
print(result);
} catch (exception) {
print(exception);
}
}),
_buildTextWidget('跟踪电子商务交易', () async {
final result = await flutterPiwik.trackEcommerceTransaction(
identifier: "testId",
grandTotal: 100,
subTotal: 10,
tax: 5,
shippingCost: 100,
discount: 6,
transactionItems: ecommerceTransactionItems,
);
print(result);
}),
_buildTextWidget('跟踪社交互动', () async {
final result = await flutterPiwik.trackSocialInteraction(
network: "facebook", interaction: "like", target: 'Target');
print(result);
}),
],
),
),
),
),
),
);
}
Widget _buildTextWidget(String title, VoidCallback? onPressed) {
return TextButton(
onPressed: onPressed,
child: Container(
color: Colors.blue,
child: Text(
title,
style: const TextStyle(color: Colors.white),
),
),
);
}
}
更多关于Flutter数据分析插件flutter_analytics_piwik的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter数据分析插件flutter_analytics_piwik的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_analytics_piwik
是一个用于在 Flutter 应用中集成 Piwik 数据分析的插件。Piwik 是一个开源的分析平台,可以帮助你跟踪和分析用户行为。通过 flutter_analytics_piwik
,你可以在 Flutter 应用中轻松集成 Piwik 的功能。
以下是使用 flutter_analytics_piwik
的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 flutter_analytics_piwik
依赖:
dependencies:
flutter:
sdk: flutter
flutter_analytics_piwik: ^1.0.0 # 请确认使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化 Piwik
在你的 Flutter 应用中初始化 Piwik。通常,你可以在 main.dart
文件中的 main
函数中进行初始化。
import 'package:flutter/material.dart';
import 'package:flutter_analytics_piwik/flutter_analytics_piwik.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Piwik
await FlutterAnalyticsPiwik().initialize(
siteId: 'YOUR_SITE_ID', // 你的 Piwik 站点 ID
piwikUrl: 'https://YOUR_PIWIK_URL.com', // 你的 Piwik 服务器 URL
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
3. 跟踪页面视图
你可以在应用的不同页面中跟踪页面视图。通常,你可以在 initState
或 didChangeDependencies
中调用 trackPageView
方法。
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
void initState() {
super.initState();
// 跟踪页面视图
FlutterAnalyticsPiwik().trackPageView('HomePage');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Page'),
),
body: Center(
child: Text('Hello, World!'),
),
);
}
}
4. 跟踪自定义事件
你还可以跟踪自定义事件,例如按钮点击、用户交互等。
FlutterAnalyticsPiwik().trackEvent(
category: 'Button',
action: 'Click',
name: 'LoginButton',
value: 1,
);
5. 用户 ID 和会话管理
你可以设置用户 ID 来跟踪特定用户的行为,以及管理会话。
// 设置用户 ID
FlutterAnalyticsPiwik().setUserId('USER_ID');
// 开始新会话
FlutterAnalyticsPiwik().startNewSession();
6. 调试和测试
在开发过程中,你可以启用调试模式来查看日志输出,确保跟踪数据正确发送。
FlutterAnalyticsPiwik().setDebug(true);
7. 处理隐私和合规性
确保你的应用符合隐私法规(如 GDPR)。你可以在用户同意的情况下启用或禁用跟踪。
// 禁用跟踪
FlutterAnalyticsPiwik().setOptOut(true);
// 启用跟踪
FlutterAnalyticsPiwik().setOptOut(false);