Flutter插件lemnisk_plugin的使用
Flutter插件lemnisk_plugin的使用
该项目是用于跟踪事件、捕获屏幕视图和识别用户在基于Flutter的应用程序上的lemnisk插件。它还集成了以下设备端目的地:
- GA4
- AppsFlyer
- Clevertap
Flutter插件lemnisk_plugin开始使用
import 'package:lemnisk_plugin/AttributeBuilder.dart';
import 'package:lemnisk_plugin/LemniskFlutterCore.dart';
import 'package:lemnisk_plugin/LemniskHelper.dart';
LemniskHelper.configure(SERVER_URL, WRITE_KEY, lemniskFirebaseCore, lemniskApsflyer, lemniskCleverTapCore);
检查以下示例以了解如何在基于Flutter的应用程序中跟踪事件、捕获屏幕视图和识别用户。
示例代码
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:lemnisk_plugin/AttributeBuilder.dart';
import 'package:lemnisk_plugin/LemniskFlutterCore.dart';
import 'package:lemnisk_plugin/LemniskHelper.dart';
import 'package:clevertap_plugin/clevertap_plugin.dart';
import 'dart:io' show Platform;
void main() {
//lemnisk服务器需求
String SERVER_URL = "xyz";
String WRITE_KEY = "xyz";
//Firebase分析需求
LemniskFirebaseCore lemniskFirebaseCore = LemniskFirebaseCore(
projectName: "xxx",
enable: false,
appId: "xxx",
apiKey: "xxx",
projectId: "xxx",
messagingSenderId: "xxx",
);
//AppsFlyer需求
LemniskApsflyerCore lemniskApsflyer = LemniskApsflyerCore(
enable: false,
afAppId: "xxx",
afDevKey: "xxx",
);
//Clevertap需求
LemniskCleverTapCore lemniskCleverTapCore = LemniskCleverTapCore(
enable: true,
isDebug: true
);
LemniskHelper.configure(SERVER_URL, WRITE_KEY, lemniskFirebaseCore,
lemniskApsflyer, lemniskCleverTapCore);
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
void getIdentify() {
AttributeBuilder attributeBuilder = AttributeBuilder();
attributeBuilder.properties['key1'] = 'value1';
attributeBuilder.properties['key2'] = 'value2';
attributeBuilder.properties['lat'] = 13.291860;
attributeBuilder.properties['long'] = 77.751808;
OtherBuilder otherBuilder = OtherBuilder();
otherBuilder.otherid['otherId'] = 'otherId_value';
LemniskHelper.identify("user_id", attributeBuilder, otherBuilder);
}
void getScreen() {
AttributeBuilder attributeBuilder = AttributeBuilder();
attributeBuilder.properties['key1'] = 'value1';
attributeBuilder.properties['key2'] = 'value2';
OtherBuilder otherBuilder = OtherBuilder();
otherBuilder.otherid['otherId'] = 'otherId_value';
LemniskHelper.screen("MainActivity", attributeBuilder, otherBuilder);
}
void getTrack() {
AttributeBuilder attributeBuilder = AttributeBuilder();
attributeBuilder.properties['properties'] = 'material';
attributeBuilder.properties['button'] = 'Track event from different app';
OtherBuilder otherBuilder = OtherBuilder();
otherBuilder.otherid['trackerId'] = '6791c47a-0178-47bc-8711-86a2c67b2255';
LemniskHelper.track("MainDartFile", attributeBuilder, otherBuilder);
}
void setupCTPush() {
LemniskHelper.setPushToken("token");
if(Platform.isIOS) {
CleverTapPlugin.registerForPush();
}
CleverTapPlugin.setPushToken("token");
if (Platform.isAndroid) {
CleverTapPlugin.createNotificationChannel(
"channelId", "channelName", "channelDescription", 3, true);
}
}
void clevertapAppsflyerSink() {
var appsflyerSdk = LemniskHelper.getAppsFlyerSdk();
CleverTapPlugin.getCleverTapID().then((ctId) => appsflyerSdk?.setCustomerUserId(ctId!));
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Lemnisk Flutter SDK'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
child: Text('Track'),
onPressed: () {
getTrack();
},
style: ElevatedButton.styleFrom(
primary: Colors.blue,
padding: EdgeInsets.symmetric(horizontal: 35, vertical: 10),
textStyle:
TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
),
),
SizedBox(
height: 20,
),
ElevatedButton(
child: Text('Screen'),
onPressed: () {
getScreen();
},
style: ElevatedButton.styleFrom(
primary: Colors.blue,
padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),
textStyle:
TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
),
),
SizedBox(
height: 20,
),
ElevatedButton(
child: Text('Identify'),
onPressed: () {
getIdentify();
},
style: ElevatedButton.styleFrom(
primary: Colors.blue,
padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),
textStyle:
TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
),
),
SizedBox(
height: 20,
),
ElevatedButton(
child: Text('clevertapPushSetup'),
onPressed: () {
setupCTPush();
},
style: ElevatedButton.styleFrom(
primary: Colors.blue,
padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),
textStyle:
TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
),
),
],
),
),
),
);
}
}
对于Clevertap目的地集成,请添加以下配置:
Android:
请在AndroidManifest.xml
文件中添加以下配置,并替换实际的Clevertap账户ID和令牌值。
<meta-data
android:name="CLEVERTAP_ACCOUNT_ID"
android:value="XXX-XXX-XXXX"/>
<meta-data
android:name="CLEVERTAP_TOKEN"
android:value="XXX-XXX-XXX"/>
<meta-data
android:name="CLEVERTAP_USE_GOOGLE_AD_ID"
android:value="1"/>
iOS:
请在Info.plist
文件中添加以下配置,并替换实际的Clevertap账户ID和令牌值。
- 添加属性
CleverTapAccountID
作为字符串并设置其值。 - 添加属性
CleverTapToken
作为字符串并设置其值。
通过Clevertap发送推送通知:
Android:
请在AndroidManifest.xml
文件中添加以下配置。
<service android:name="com.clevertap.android.sdk.pushnotification.fcm.FcmMessageListenerService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
在Flutter应用中通用配置:
然后添加以下代码,并替换实际的推送令牌、通道ID、通道名称和通道描述。
LemniskHelper.setPushToken("token");
if(Platform.isIOS) {
CleverTapPlugin.registerForPush();
}
CleverTapPlugin.setPushToken("token");
if (Platform.isAndroid) {
CleverTapPlugin.createNotificationChannel(
"channelId", "channelName", "channelDescription", 3, true);
}
对于Clevertap自动将数据下沉到Appsflyer:
此Appsflyer SDK对象也可用于统一深度链接。
var appsflyerSdk = LemniskHelper.getAppsFlyerSdk();
CleverTapPlugin.getCleverTapID().then((ctId) => appsflyerSdk?.setCustomerUserId(ctId!));
更多关于Flutter插件lemnisk_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter插件lemnisk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,作为一个IT专家,我可以为你提供一个关于如何使用Flutter中名为lemnisk_plugin
的未知功能插件的代码案例。不过,由于这是一个假设的插件,具体的功能和API可能会有所不同。但我会基于一般Flutter插件的使用方法来提供一个示例代码框架。
首先,确保你已经在pubspec.yaml
文件中添加了lemnisk_plugin
依赖,并运行了flutter pub get
来获取插件。
dependencies:
flutter:
sdk: flutter
lemnisk_plugin: ^x.y.z # 假设的版本号
接下来,在你的Flutter项目中导入并使用该插件。以下是一个简单的示例,展示了如何初始化插件并调用其假设的某个功能(由于我们不知道具体功能,这里仅作假设)。
import 'package:flutter/material.dart';
import 'package:lemnisk_plugin/lemnisk_plugin.dart'; // 导入插件
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Lemnisk Plugin Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
LemniskPlugin? _lemniskPlugin;
String? _result;
@override
void initState() {
super.initState();
// 初始化插件
_lemniskPlugin = LemniskPlugin();
// 假设插件有一个名为`performAction`的异步方法
_lemniskPlugin!.performAction()?.then((result) {
setState(() {
_result = result;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Lemnisk Plugin Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Plugin Result:',
),
Text(
_result ?? 'Loading...',
style: TextStyle(fontSize: 20),
),
],
),
),
);
}
}
在这个示例中,我们做了以下几件事:
- 在
pubspec.yaml
文件中添加了lemnisk_plugin
依赖。 - 在
MyApp
类中创建了应用的主界面。 - 在
MyHomePage
类中初始化了LemniskPlugin
插件,并假设插件有一个名为performAction
的异步方法,该方法返回一个结果。 - 使用
setState
方法更新UI以显示插件返回的结果。
请注意,由于lemnisk_plugin
是一个假设的插件,实际使用时你需要参考该插件的官方文档来了解其真实的功能和API。如果lemnisk_plugin
有特定的初始化步骤或配置要求,也请确保按照文档进行相应的设置。