Flutter集成Dito服务插件dito_sdk的使用
Flutter集成Dito服务插件dito_sdk的使用
Dito SDK (Flutter)
是一个 Dart 库,它提供了将应用程序与 Dito 平台集成的方法。它允许识别用户、注册事件并发送自定义数据。
安装
要将 Dito SDK
库安装到您的 Flutter 应用程序中,请遵循以下说明:
# 添加依赖包
flutter pub add dito_sdk
方法
初始化
此方法应在调用 SDK 的任何其他操作之前调用。它初始化用于在 Dito 平台上进行身份验证所需的 API 和 SECRET 密钥。
void initialize({required String apiKey, required String secretKey});
参数
- apiKey (String, 必填): Dito 平台的 API 密钥。
- secretKey (String, 必填): Dito 平台的 API 密钥的密钥。
初始化推送通知服务
此方法应在 SDK 初始化之后调用。它初始化推送通知功能所需的服务和配置。
void initializePushNotificationService();
参数
- apiKey (String, 必填): Dito 平台的 API 密钥。
- secretKey (String, 必填): Dito 平台的 API 密钥的密钥。
识别用户
此方法定义将在所有后续操作中使用的用户 ID。
void identify(String userId);
参数
- userID (String, 必填): 用于在 Dito 平台上标识用户的 ID。
- name (String): 用于在 Dito 平台上标识用户的名称。
- email (String): 用于在 Dito 平台上标识用户的电子邮件。
- gender (String): 用于在 Dito 平台上标识用户的性别。
- birthday (String): 用于在 Dito 平台上标识用户的生日。
- location (String): 用于在 Dito 平台上标识用户的地点。
- customData (Map<String, dynamic>): 用于在 Dito 平台上标识用户的自定义数据。
注册用户
此方法使用先前通过 identify()
方法提供的信息在 Dito 平台上注册用户。
Future<http.Response> identifyUser() async;
异常
- 如果在调用此方法时 SDK 中尚未注册
userId
,则会在应用程序中引发错误。(请使用setUserId()
方法设置userId
)
跟踪事件
trackEvent()
方法的目的是在 Dito 平台上注册一个事件。如果 userID
已经注册,则该事件会立即发送。然而,如果 userID
还未注册,则事件将被本地存储,并在通过 setUserId()
方法注册 userID
后发送。
Future<void> trackEvent(
{
required String eventName,
double? revenue,
Map<String, String>? customData,
}
)
async;
参数
- eventName (String, 必填): 要注册的事件名称。
- revenue (double, 可选): 与事件相关的收入。
- customData (Map<String, String>, 可选): 与事件关联的额外自定义数据。
注册移动令牌
此方法允许为用户注册移动令牌。
Future<http.Response> registryMobileToken({
required String token,
String? platform,
});
参数
- token (String, 必填): 将要注册的移动令牌。
- platform (String, 可选): 用户访问应用程序的平台名称。有效值:‘iPhone’ 和 ‘Android’。
如果没有传递此属性的值,SDK 将默认使用platform
属性的值。
异常
- 如果传递给
platform
属性的值不是 ‘iPhone’ 或 ‘Android’,则会在应用程序中引发错误。 - 如果在调用此方法时 SDK 中尚未注册
identify
,则会在应用程序中引发错误。(请使用identify()
方法设置用户的 ID)
移除移动令牌
此方法允许为用户移除移动令牌。
Future<http.Response> removeMobileToken({
required String token,
String? platform,
});
参数
- token (String, 必填): 将要移除的移动令牌。
- platform (String, 可选): 用户访问应用程序的平台名称。有效值:‘iPhone’ 和 ‘Android’。
如果没有传递此属性的值,SDK 将默认使用platform
属性的值。
异常
- 如果传递给
platform
属性的值不是 ‘iPhone’ 或 ‘Android’,则会在应用程序中引发错误。 - 如果在调用此方法时 SDK 中尚未注册
identify
,则会在应用程序中引发错误。(请使用identify()
方法设置用户的 ID)
打开通知
此方法允许注册移动通知的打开。
Future<http.Response> openNotification
(
{
required String notificationId,
required String identifier,
required String reference
}) async
参数
- notificationId (String, 必填): 应用程序接收到的通知的 Dito ID。
- identifier (String, 必填): 用于在 Dito 平台上标识通知的参数。
- reference (String, 必填): 用于在 Dito 平台上标识用户的参数。
注意事项
- 这些参数将存在于通知的数据中。
类
用户类
用于处理用户数据的类。
User user = User(sha1("joao@example.com"), 'João da Silva', 'joao@example.com', 'São Paulo');
参数
- userID (String, 必填): 用于在 Dito 平台上标识用户的 ID。
- name (String): 用于在 Dito 平台上标识用户的名称。
- email (String): 用于在 Dito 平台上标识用户的电子邮件。
- gender (String): 用于在 Dito 平台上标识用户的性别。
- birthday (String): 用于在 Dito 平台上标识用户的生日。
- location (String): 用于在 Dito 平台上标识用户的地点。
- customData (Map<String, dynamic>): 用于在 Dito 平台上标识用户的自定义数据。
示例
基本使用
import 'package:dito_sdk/dito_sdk.dart';
final dito = DitoSDK();
// 使用 API 密钥和密钥初始化 SDK
dito.initialize(
apiKey: 'your_api_key', secretKey: 'your_secret_key');
// 定义或更新实例中的用户信息(此时还没有与 Dito 通信)
dito.identify(sha1("joao@example.com"), 'João da Silva', 'joao@example.com', 'São Paulo');
// 发送由 identify 定义或更新的用户信息到 Dito
await dito.identifyUser();
// 在 Dito 上注册一个事件
await dito.trackEvent(eventName: 'login');
高级使用
main.dart
import 'package:dito_sdk/dito_sdk.dart';
final dito = DitoSDK();
// 使用 API 密钥和密钥初始化 SDK
dito.initialize(
apiKey: 'your_api_key', secretKey: 'your_secret_key');
login.dart
import 'package:dito_sdk/dito_sdk.dart';
final dito = DitoSDK();
// 设置用户 ID
dito.setUserId('user_id');
dito.identify(sha1("joao@example.com"), 'João da Silva', 'joao@example.com', 'São Paulo');
await dito.identifyUser();
arquivoX.dart
import 'package:dito_sdk/dito_sdk.dart';
final dito = DitoSDK();
// 定义或更新实例中的用户信息(此时还没有与 Dito 通信)
dito.identify(
sha1("joao@example.com"), 'João da Silva', 'joao@example.com', 'São Paulo');
await dito.identifyUser();
await dito.registryMobileToken(token: 'your_token');
arquivoY.dart
import 'package:dito_sdk/dito_sdk.dart';
final dito = DitoSDK();
// 定义或更新实例中的用户信息(此时还没有与 Dito 通信)
dito.identify(
sha1("joao@example.com"), 'João da Silva', 'joao@example.com', 'Rio de Janeiro', {
'loja preferida': 'LojaX',
'canal preferido': 'Loja Física'
});
await dito.identifyUser();
这将导致调用 identifyUser()
时发送以下用户 payload:
{
name: 'João da Silva',
email: 'joao@example.com',
location: 'Rio de Janeiro',
customData: {
'loja preferida': 'LojaX',
'canal preferido': 'Loja Física'
}
}
我们的 SDK 是一个单例,这意味着即使它在一个文件中多次初始化或在多个文件中初始化,它始终引用之前存储的信息。这使我们能够随时调用 identify()
方法添加或更新用户详细信息,并仅在必要时通过 identifyUser()
方法发送它们。
arquivoZ.dart
import 'package:dito_sdk/dito_sdk.dart';
final dito = DitoSDK();
// 在 Dito 上注册一个事件
dito.trackEvent(
eventName: 'comprou produto',
revenue: 99.90,
customData: {
'produto': 'produtoX',
'sku_produto': '99999999',
'metodo_pagamento': 'Visa',
},
);
使用 SDK 处理推送通知
为了使其正常工作,需要配置 Firebase Cloud Messaging (FCM) 库,遵循以下步骤:
dart pub global activate flutterfire_cli
flutter pub add firebase_core firebase_messaging
flutterfire configure
按照 CLI 中出现的步骤操作,以便在 Android 和 iOS 应用程序中配置 Firebase 访问密钥。
main.dart
import 'package:dito_sdk/dito_sdk.dart';
// 注册一个服务以接收完全关闭的应用程序的推送
[@pragma](/user/pragma)('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
final notification = DataPayload.fromJson(jsonDecode(message.data["data"]));
dito.notificationService().showLocalNotification(CustomNotification(
id: message.hashCode,
title: notification.details.title ?? "应用名称",
body: notification.details.message,
payload: notification));
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
DitoSDK dito = DitoSDK();
dito.initialize(apiKey: 'your_api_key', secretKey: 'your_secret_key');
await dito.initializePushService();
}
更多关于Flutter集成Dito服务插件dito_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Dito服务插件dito_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中集成并使用dito_sdk
插件的示例代码。这个示例假设你已经有一个Flutter项目,并且了解基本的Flutter开发流程。
步骤 1: 添加依赖
首先,你需要在pubspec.yaml
文件中添加dito_sdk
依赖。打开你的pubspec.yaml
文件,并在dependencies
部分添加以下行:
dependencies:
flutter:
sdk: flutter
dito_sdk: ^最新版本号 # 请替换为实际的最新版本号
然后,运行flutter pub get
来安装依赖。
步骤 2: 配置Dito服务
在使用dito_sdk
之前,你需要在Dito平台上创建一个应用并获取必要的配置信息,如API密钥、应用ID等。
步骤 3: 初始化Dito SDK
在你的Flutter项目的入口文件(通常是main.dart
)中,初始化dito_sdk
。
import 'package:flutter/material.dart';
import 'package:dito_sdk/dito_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Dito SDK
await DitoSdk.initialize(
apiKey: '你的API密钥',
appId: '你的应用ID',
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Dito SDK Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// 在这里你可以添加更多的UI和逻辑来处理Dito SDK的功能
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Dito SDK Demo'),
),
body: Center(
child: Text('Dito SDK 已初始化'),
),
);
}
}
步骤 4: 使用Dito SDK的功能
一旦Dito SDK初始化完成,你就可以使用它提供的各种功能了。下面是一个示例,展示如何调用Dito SDK的一个假设功能(注意:这里的功能名称是假设的,你需要根据实际的Dito SDK文档来调整)。
class _MyHomePageState extends State<MyHomePage> {
String result = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Dito SDK Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Dito SDK 功能调用结果:'),
Text(result, style: TextStyle(fontSize: 20)),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
try {
// 调用Dito SDK的某个功能,这里以假设的fetchData为例
var data = await DitoSdk.fetchData();
setState(() {
result = '获取的数据: $data';
});
} catch (e) {
setState(() {
result = '错误: ${e.message}';
});
}
},
child: Text('调用Dito功能'),
),
],
),
),
);
}
}
注意事项
- API密钥和应用ID:确保你使用的是从Dito平台获取的正确的API密钥和应用ID。
- 错误处理:在实际应用中,你应该添加更多的错误处理逻辑来确保应用的健壮性。
- 文档参考:务必参考Dito SDK的官方文档,以获取最新的API信息和功能说明。
以上代码是一个基本的示例,展示了如何在Flutter项目中集成并使用dito_sdk
。根据你的具体需求,你可能需要调用不同的API或处理不同的数据。