Flutter插件sdxfluttersdk的使用方法详解
Flutter插件sdxfluttersdk的使用方法详解
sdxfluttersdk
品牌通常通过多种离线和在线沟通触点与用户互动,并在这些触点上使用不同的身份标识。SmartDx分析是一项增值服务,用于跟踪和报告网站及原生应用的流量和行为。将SmartDx分析模块集成到应用中可以启用一系列服务,例如用户旅程报告、客户数据增强以及创建或触发活动。生成分析服务涉及使用软件开发套件(SDK)进行数据捕获。SmartDx应用生成SDK代码片段并将其嵌入到网站和移动应用的目标着陆页面中。
SmartDX SDK with Flutter允许集成推送通知服务,并通过Flutter应用捕获与分析相关的数据,支持Android和iOS平台。该SDK在不同的跨平台应用中工作,并通过特定识别为iOS或Android的API调用,在两个平台上提供相同代码的支持。
文档介绍了SmartDx SDK与Flutter的基础知识。
使用示例
以下是一个完整的示例,展示如何使用SDXFlutterSDK插件来实现用户注册、推送通知管理、事件追踪等功能。
示例代码
// example/lib/main.dart
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:firebase_messaging/firebase_messaging.dart' if (dart.library.io) 'package:firebase_messaging/firebase_messaging.dart';
import 'package:firebase_core/firebase_core.dart' if (dart.library.io) 'package:firebase_core/firebase_core.dart';
import 'package:flutter/foundation.dart';
import 'package:sdxfluttersdk/refluttersdk.dart';
void main() async {
if (defaultTargetPlatform == TargetPlatform.android || defaultTargetPlatform == TargetPlatform.iOS) {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
}
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'SDXFlutterSDK-Example',
debugShowCheckedModeBanner: false,
theme: ThemeData(primarySwatch: Colors.blue),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
final _refluttersdkPlugin = Refluttersdk();
method() async {
_refluttersdkPlugin.unReadNotification("CampaignId");
}
class _MyHomePageState extends State<MyHomePage> {
var token;
StreamSubscription<String>? streamSubscription;
[@override](/user/override)
void initState() {
super.initState();
if (kIsWeb) {
_refluttersdkPlugin.initWebSDK("./sw.js");
}
if (defaultTargetPlatform == TargetPlatform.android || defaultTargetPlatform == TargetPlatform.iOS) {
_getFcmToken();
}
if (defaultTargetPlatform == TargetPlatform.android) {
deeplinkListener();
} else {
getDeeplinkData();
}
}
deeplinkListener() {
streamSubscription = _refluttersdkPlugin.listenDeeplinkData().listen((data) async {
try {
debugPrint('DeepLink Listener :: $data');
var deeplinkData = jsonDecode(data);
var customParams = deeplinkData['customParams'];
_refluttersdkPlugin.deepLinkDataReset();
if (customParams != null) {
screenNavigator(jsonDecode(customParams)['screenName'], jsonDecode(customParams)['data']);
}
} catch (e) {
debugPrint('$e');
}
});
}
getDeeplinkData() {
_refluttersdkPlugin.listener((data) {
debugPrint("Deeplink Data :: $data");
var deeplinkData = jsonDecode(data);
var customParams = deeplinkData['customParams'];
_refluttersdkPlugin.deepLinkDataReset();
if (customParams != null) {
screenNavigator(jsonDecode(customParams)['screenName'], jsonDecode(customParams)['data']);
}
});
}
screenNavigator(var screenName, var data) {
switch (screenName) {
case "CareerPage":
if (data != null) {}
else {
Navigator.push(context, MaterialPageRoute(builder: (context) => const Page1()));
}
break;
case "CertificationPage":
if (data != null) {}
else {
Navigator.push(context, MaterialPageRoute(builder: (context) => const Page2()));
}
break;
case "Page3":
if (data != null) {}
else {
Navigator.push(context, MaterialPageRoute(builder: (context) => const Page3()));
}
break;
default:
debugPrint("ScreenName is not defined!!!");
}
}
Future<void> _getFcmToken() async {
FirebaseMessaging messaging = FirebaseMessaging.instance;
messaging.getToken().then((value) {
debugPrint('Fcm Token: $value');
setState(() {
token = value;
});
});
}
passLocation() {
double lat = 13.0827;
double lang = 80.2707;
_refluttersdkPlugin.locationUpdate(lat, lang);
}
customEvent() {
var event = "On Track Event called!!!";
_refluttersdkPlugin.customEvent(event);
}
customEventwithData() {
if (kIsWeb) {
var data = {'eventName': 'Website Opened', 'eventData': 'Viewed Groceries', 'pId': 123};
_refluttersdkPlugin.customEventWithData(data);
} else {
var eventData = {"name": "payment", "data": {"id": "6744", "price": "477"}};
_refluttersdkPlugin.customEventWithData(eventData);
}
}
deleteNotificationByCampaignid(campaignId) {
_refluttersdkPlugin.deleteNotificationByCampaignId(campaignId);
}
readnotification(campaignId) {
_refluttersdkPlugin.readNotification(campaignId);
}
unreadNotification(campaignId) {
_refluttersdkPlugin.unReadNotification(campaignId);
}
appconversionTracking() {
_refluttersdkPlugin.appConversion();
}
appconversionTrackingWithData() {
Map appConversionData = {"name": "xyrr", "data": {"age": "23", "city": "yyy"}};
_refluttersdkPlugin.appConversionWithData(appConversionData);
}
formdataCapture() {
Map formData = {
"Name": "vishwa",
"EmailID": "abc@gmail.com",
"MobileNo": 9329333,
"Gender": "Male",
"formid": 101,
"apikey": "b78db6rb3-9462-4132-a4d3-894db10b3782",
"City": "Chennai"
};
_refluttersdkPlugin.formDataCapture(formData);
}
updatepushToken(fcmToken) {
_refluttersdkPlugin.updatePushToken(fcmToken);
}
notificationCTAClick(String campaignId, int actionId) {
_refluttersdkPlugin.notificationCTAClicked(campaignId, actionId);
}
sdkRegisteration() {
if (kIsWeb) {
Map userData = {
"userUniqueId": "visionuser@email.com",
"name": "<name>",
"age": "<age>",
"email": "<email>",
"phone": "<phone>",
"gender": "<gender>",
"profileUrl": "<profileUrl>",
"dateOfBirth": "<dob>",
};
_refluttersdkPlugin.sdkRegisteration(userData);
} else {
Map userData = {
"userUniqueId": "abc@gmail.com",
"name": "kkkkk",
"age": "23",
"email": "abc@gmail.com",
"phone": "12334455",
"gender": "Male",
"profileUrl": "",
"dob": "23/12/2010",
"education": "BE",
"employed": "true",
"married": "false",
"deviceToken": token,
"storeId": "555"
};
_refluttersdkPlugin.sdkRegisteration(userData);
}
}
readnotificationCount() async {
var rnCount = await _refluttersdkPlugin.getReadNotificationCount();
if (kDebugMode) {
debugPrint("readNotificationCount::$rnCount");
}
}
unReadnotificationCount() async {
var unreadCount = await _refluttersdkPlugin.getUnReadNotificationCount();
debugPrint("unReadNotificationCount::$unreadCount");
}
getNotificationList() async {
var notificationList = await _refluttersdkPlugin.getNotificationList();
debugPrint("GetNotificationList::$notificationList");
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('SDXFlutterSDK', style: TextStyle(fontWeight: FontWeight.bold)),
),
body: SingleChildScrollView(
child: ConstrainedBox(
constraints: const BoxConstraints(),
child: Container(
child: Column(
children: [
ElevatedButton(
onPressed: () {
sdkRegisteration();
},
child: const Text("On Device User Register"),
),
ElevatedButton(
onPressed: () {
updatepushToken(token);
},
child: const Text("update Push Token"),
),
ElevatedButton(
onPressed: () {
passLocation();
},
child: const Text("Update Location"),
),
ElevatedButton(
onPressed: () {
readnotification("w39|G|qqD|iF|DEA5Q|430404|Bulk|20230418060124");
},
child: const Text("Read Notification By Id"),
),
ElevatedButton(
onPressed: () {
unreadNotification("w39|G|qqD|iF|DEA5Q|430404|Bulk|20230418060124");
},
child: const Text("UnRead Notification BY Id"),
),
ElevatedButton(
onPressed: () {
getNotificationList();
},
child: const Text("Get Notification List"),
),
ElevatedButton(
onPressed: () {
readnotificationCount();
},
child: const Text("Read Notification Count"),
),
ElevatedButton(
onPressed: () {
unReadnotificationCount();
},
child: const Text("Un_Read_Notification_Count"),
),
ElevatedButton(
onPressed: () {
deleteNotificationByCampaignid("w39|G|qqD|iF|DEA5Q|430404|Bulk|20230418060124");
},
child: const Text("Delete Notification By CampaignId"),
),
ElevatedButton(
onPressed: () {
formdataCapture();
},
child: const Text("form Data Capture"),
),
ElevatedButton(
onPressed: () {
customEvent();
},
child: const Text("customEvent"),
),
ElevatedButton(
onPressed: () {
customEventwithData();
},
child: const Text("customEventwithData"),
),
ElevatedButton(
onPressed: () {
appconversionTracking();
},
child: const Text("app Conversion Tracking"),
),
ElevatedButton(
onPressed: () {
appconversionTrackingWithData();
},
child: const Text("App Conversion Tracking WithData"),
),
ElevatedButton(
onPressed: () {
notificationCTAClick("w39|G|qqD|iF|DEA5Q|430404|Bulk|20230418060124", 4833);
},
child: const Text("NotificationCTA clicked"),
),
ElevatedButton(
onPressed: () {
WidgetsBinding.instance.addPostFrameCallback((_) {
_refluttersdkPlugin.screentracking("page1");
});
Navigator.push(context, MaterialPageRoute(builder: (context) => const Page1()));
},
child: const Text("Page-1"),
),
ElevatedButton(
onPressed: () {
WidgetsBinding.instance.addPostFrameCallback((_) {
_refluttersdkPlugin.screentracking("page2");
});
Navigator.push(context, MaterialPageRoute(builder: (context) => const Page2()));
},
child: const Text("Page-2"),
),
ElevatedButton(
onPressed: () {
WidgetsBinding.instance.addPostFrameCallback((_) {
_refluttersdkPlugin.screentracking("page3");
});
Navigator.push(context, MaterialPageRoute(builder: (context) => const Page3()));
},
child: const Text("Page-3"),
),
],
),
),
),
),
);
}
}
class Page1 extends StatelessWidget {
const Page1({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: const Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Page1'),
],
),
),
);
}
}
class Page2 extends StatelessWidget {
const Page2({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: const Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Page2'),
],
),
),
);
}
}
class Page3 extends StatelessWidget {
const Page3({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: const Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Page3'),
],
),
),
);
}
}更多关于Flutter插件sdxfluttersdk的使用方法详解的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter插件sdxfluttersdk的使用方法详解的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
SDXFlutterSDK 是一个可能用于与特定服务或功能集成的 Flutter 插件。由于“SDXFlutterSDK”并不是一个广泛知名或官方维护的插件,因此具体的使用方法和功能可能会根据插件的实现和用途有所不同。以下是一些通用的步骤和指南,帮助你探索和使用未知的 Flutter 插件。
1. 查找插件的文档
首先,尝试查找插件的官方文档或 GitHub 仓库。通常,插件的 README 文件会提供安装步骤、基本用法和示例代码。
- GitHub: 搜索
SDXFlutterSDK,看看是否有相关的开源项目。 - Pub.dev: 在 pub.dev 上搜索插件,查看是否有详细的使用说明。
2. 安装插件
在 pubspec.yaml 文件中添加插件的依赖项。例如:
dependencies:
sdxfluttersdk: ^版本号
然后运行 flutter pub get 来安装插件。
3. 导入插件
在你的 Dart 文件中导入插件:
import 'package:sdxfluttersdk/sdxfluttersdk.dart';
4. 初始化插件
某些插件需要在使用前进行初始化。查看文档是否有相关说明:
SDXFlutterSDK.initialize(apiKey: 'your_api_key');
5. 使用插件功能
根据插件的功能,调用相应的方法。例如,如果插件提供了数据获取功能,可以这样使用:
var data = await SDXFlutterSDK.fetchData();
print(data);
6. 处理错误和异常
在使用插件时,确保处理可能出现的错误和异常:
try {
var data = await SDXFlutterSDK.fetchData();
print(data);
} catch (e) {
print('Error: $e');
}
7. 调试和日志
如果插件提供了日志或调试功能,启用它们以帮助诊断问题:
SDXFlutterSDK.setDebugMode(true);

