Flutter集成Promise功能插件promize_sdk的使用
Flutter集成Promise功能插件promize_sdk的使用
Promize SDK 是一个数据收集SDK,提供了简单的方法来收集用户的数据和兴趣。
概述
App SDK 提供了发送事务性消息和触发事件的方法。其他方法帮助你保存有关人员的信息、最常访问的页面和事件。
开始使用
首先,在 Promize控制台 注册账户。
然后在你的 pubspec.yaml
文件中添加 promize_sdk
依赖:
dependencies:
promize_sdk: ^latest_version
确保升级你的 Dart SDK 到 >=2.12.4:
sdk: ">=2.12.4 <4.0.0"
此外,该SDK使用了FCM,你需要在项目中设置Firebase。请参阅 文档 获取更多信息。
初始化
初始化SDK时需要调用 initialize
方法:
final _promizeSdkPlugin = PromizeSdk.instance;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
await _promizeSdkPlugin.initialize(
apiKey: 'your_api_key',
siteId: 'your_site_id',
baseUrl: 'your_base_url',
pushEnabled: true, // 是否接收通知
appVersion: 'your_app_version', // 可选参数
);
});
}
身份验证
登录或注册用户时需要添加用户信息:
final user = User(
name: "name",
email: "mail@gmail.com",
userId: "44",
data: {
"type": "user",
"premium": true,
},
);
_promizeSdkPlugin.createUser(user: user);
更新用户信息
你可以通过以下方式更新用户信息:
_promizeSdkPlugin.updateUser(user: user);
更新设备令牌
为了使用Firebase Cloud Messaging,你需要在 onTokenChangedCallback
中调用 updateDeviceToken
方法:
messaging.onTokenRefresh.listen((newToken) {
_promizeSdkPlugin.updateDeviceToken(
deviceToken: newToken,
);
});
保存设备令牌
你也可以通过调用 saveDeviceToken
方法来保存设备令牌:
_promizeSdkPlugin.saveDeviceToken(
deviceToken: "your_device_token",
);
登出
当用户从应用中登出时,需要调用 logout
方法以清除用户数据:
_promizeSdkPlugin.logout();
添加事件
在注册用户后,可以在应用的任何地方添加事件,只需调用 addEvent
并传递所需的所有参数:
_promizeSdkPlugin.addEvent(
eventName: "test Event",
eventType: EventType.event,
eventData: {"first_collectd": "data"},
);
通知跟踪
如果你想跟踪系统发送的通知活动,需要在通知点击回调中调用 trackNotificationActivity
方法:
在后台接收通知
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
final _promizeSdkPlugin = PromizeSdk.instance;
await _promizeSdkPlugin.initialize(
apiKey: '{your-api-key}',
siteId: '{your-site-id}',
baseUrl: '{your-base-url}',
pushEnabled: true,
appVersion: '0.0.1',
);
_promizeSdkPlugin.trackNotificationActivity(
activityType: NotificationAction.received,
data: message.data,
);
}
在前台接收通知
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
_promizeSdkPlugin.trackNotificationActivity(
activityType: NotificationAction.received,
data: message.data,
);
if (message.notification != null) {
print('Message also contained a notification: ${message.notification?.title ?? ''} - ${message.notification?.body ?? ''}');
}
Alert.instance.showNotification(
context,
message.notification?.title,
message.notification?.body,
() {
_promizeSdkPlugin.trackNotificationActivity(
activityType: NotificationAction.clicked,
data: message.data,
);
},
);
});
当通知点击且应用在后台时
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
_promizeSdkPlugin.trackNotificationActivity(
activityType: NotificationAction.clicked,
data: message.data,
);
});
更多关于Flutter集成Promise功能插件promize_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Promise功能插件promize_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中集成Promise功能可以通过使用promize_sdk
插件来实现。promize_sdk
是一个用于在Flutter中处理异步操作的插件,它允许你使用类似于JavaScript中的Promise来处理异步任务。以下是集成和使用promize_sdk
插件的步骤:
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加promize_sdk
插件的依赖:
dependencies:
flutter:
sdk: flutter
promize_sdk: ^1.0.0 # 请根据实际情况使用最新版本
然后运行flutter pub get
来获取依赖。
2. 导入包
在需要使用promize_sdk
的地方导入包:
import 'package:promize_sdk/promize_sdk.dart';
3. 使用Promise
promize_sdk
提供了Promise
类来处理异步操作。以下是一个简单的示例,展示了如何使用Promise
来处理异步任务:
void main() {
// 创建一个Promise
Promise<String> promise = Promise((resolve, reject) {
// 模拟一个异步操作
Future.delayed(Duration(seconds: 2), () {
bool success = true; // 模拟操作是否成功
if (success) {
resolve("Operation succeeded!");
} else {
reject("Operation failed!");
}
});
});
// 处理Promise的结果
promise.then((value) {
print("Success: $value");
}).catchError((error) {
print("Error: $error");
});
}
4. Promise链式调用
Promise
支持链式调用,你可以通过then
方法将多个异步操作串联起来:
void main() {
Promise<String> promise = Promise((resolve, reject) {
Future.delayed(Duration(seconds: 2), () {
resolve("First operation succeeded!");
});
});
promise
.then((value) {
print("Success: $value");
return "Second operation succeeded!";
})
.then((value) {
print("Success: $value");
})
.catchError((error) {
print("Error: $error");
});
}
5. 错误处理
你可以使用catchError
方法来捕获和处理Promise
中的错误:
void main() {
Promise<String> promise = Promise((resolve, reject) {
Future.delayed(Duration(seconds: 2), () {
reject("Operation failed!");
});
});
promise
.then((value) {
print("Success: $value");
})
.catchError((error) {
print("Error: $error");
});
}
6. 使用Promise.all
promize_sdk
还提供了Promise.all
方法,用于处理多个Promise
的并发执行:
void main() {
Promise<String> promise1 = Promise((resolve, reject) {
Future.delayed(Duration(seconds: 2), () {
resolve("Operation 1 succeeded!");
});
});
Promise<String> promise2 = Promise((resolve, reject) {
Future.delayed(Duration(seconds: 3), () {
resolve("Operation 2 succeeded!");
});
});
Promise.all([promise1, promise2]).then((values) {
print("All operations succeeded: $values");
}).catchError((error) {
print("Error: $error");
});
}
7. 使用Promise.race
Promise.race
方法用于处理多个Promise
的竞态执行,返回最先完成的Promise
的结果:
void main() {
Promise<String> promise1 = Promise((resolve, reject) {
Future.delayed(Duration(seconds: 2), () {
resolve("Operation 1 succeeded!");
});
});
Promise<String> promise2 = Promise((resolve, reject) {
Future.delayed(Duration(seconds: 1), () {
resolve("Operation 2 succeeded!");
});
});
Promise.race([promise1, promise2]).then((value) {
print("First operation completed: $value");
}).catchError((error) {
print("Error: $error");
});
}