Flutter集成Blaze平台功能插件blaze_sdk_flutter的使用
Flutter集成Blaze平台功能插件blaze_sdk_flutter的使用
Blaze SDK Flutter 是一个易于使用的工具包,可让您轻松地将 Breeze 1 Click Checkout 及其服务集成到您的 Android 应用程序中。
Flutter SDK 集成
以下是将 Blaze SDK 集成到您的 Android 应用程序中的步骤:
Step 1: 获取 Blaze SDK
1.1 添加 Blaze SDK 依赖项到 pubspec.yaml 文件
运行以下命令以将 blaze_sdk_flutter 作为依赖项添加到您的 Flutter 项目中:
flutter pub add blaze_sdk_flutter
1.2 在项目的 android/build.gradle 文件中包含 SDK 解析的存储库
在项目的 android/build.gradle 文件中添加以下行:
allprojects {
repositories {
google()
mavenCentral()
// 添加此行
maven { url "https://jitpack.io" }
}
}
Step 2: 初始化 SDK
2.1 在应用程序类中导入 Blaze SDK 包
import 'package:blaze_sdk_flutter/blaze_sdk_flutter.dart';
2.2 在应用程序类中创建 BlazeSdkFlutter 类的实例
final _blaze = BlazeSdkFlutter();
2.3 初始化 Blaze 实例
最好在结账页面打开或应用启动时初始化 Blaze。
2.2.1 构造初始化负载
创建一个带有正确参数的 JSON 来初始化 SDK。这是用于初始化 SDK 的数据。
// 创建初始化数据的 JSONObject
Map<String, dynamic> createInitiatePayload() {
return {
"merchantId": "<MERCHANT_ID>",
"environment": "<ENVIRONMENT>",
"shopUrl": "<SHOP_URL>"
};
}
// 将初始化负载放入 SDK 负载
Map<String, dynamic> createSDKPayload(Map<String, dynamic> payload) {
return {
"requestId": "randomId",
"service": "in.breeze.onecco",
"payload": payload
};
}
var initiatePayload = createSDKPayload(createInitiatePayload());
注意:从 Breeze 团队获取 <MERCHANT_ID>、<ENVIRONMENT> 和 <SHOP_URL> 的值。
参考架构以了解键的含义。
2.2.2 构造回调方法
在用户旅程期间,SDK 将调用带有 SDK 操作结果的回调方法。您需要实现此方法以处理 SDK 操作的结果。
void handleCallbackEvent(Map<String, dynamic> callbackEvent) {
print("Callback Event: $callbackEvent");
}
2.2.3 在 Blaze 实例上调用初始化方法
最后,在 Blaze 实例上调用初始化方法,传入负载和回调方法。第一个参数是应用程序的上下文。
_blaze.initiate(initiatePayload, handleCallbackEvent);
Step 3: 开始处理请求
一旦 SDK 初始化完成,您可以开始使用已初始化的 SDK 实例来处理请求。SDK 将通过回调方法返回操作结果。
3.1 构造处理负载
创建一个带有所需参数的 JSON 负载来处理请求。处理负载因请求而异。
// 创建 SDK 处理负载
// 创建处理数据的 JSONObject
Map<String, dynamic> createProcessPayload() {
return {
"action": "<ACTION>",
// 其他键...
};
}
var processPayload = createSDKPayload(createProcessPayload());
3.2 在 Blaze 实例上调用处理方法
调用 Blaze 实例上的处理方法,传入处理负载以开始用户旅程或无头流。
_blaze.process(processSDKPayload);
完整示例代码
以下是完整的示例代码,展示了如何使用 blaze_sdk_flutter 插件:
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:blaze_sdk_flutter/blaze_sdk_flutter.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
if (!kIsWeb && defaultTargetPlatform == TargetPlatform.android) {}
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _blazeSdkFlutterPlugin = BlazeSdkFlutter();
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
// 平台消息是异步的,因此我们在异步方法中进行初始化。
Future<void> initPlatformState() async {
if (!mounted) return;
setState(() {});
}
Map<String, dynamic> createSDKPayload(Map<String, dynamic> payload) {
return {
"requestId": "randomId",
"service": "in.breeze.onecco",
"payload": payload
};
}
Map<String, dynamic> createInitiatePayload() {
return {
"merchantId": "d2cstorebeta",
"environment": "beta",
"shopUrl": "https://d2cstore-custom.vercel.app"
};
}
void handleCallbackEvent(Map<String, dynamic> callbackEvent) {
print("Callback Event: $callbackEvent");
}
Map<String, dynamic> createProcessPayload() {
return {
"action": "startCheckout",
"cart": "{\"id\":\"7feaa429-308d-49b7-8461-46bfa4b37ff7\",\"items\":[{\"id\":\"3aecf419-6823-4581-a093-0c90c5b5e1fc\",\"title\":\"Apple iPhone 7 Plus\",\"variantTitle\":\"256 GB / GOLD\",\"image\":\"https://dfelk5npz6ka0.cloudfront.net/products/40767940985052.jpg\",\"quantity\":1,\"initialPrice\":100,\"finalPrice\":100,\"discount\":0}],\"initialPrice\":100,\"totalPrice\":100,\"totalDiscount\":0,\"itemCount\":1,\"currency\":\"INR\"}",
"signature": "T4BRKwHKWfkWRLgF5ecss2+2tyID4zKVUqkfEgdFS73lyAokBq92VJRz4g+xzCcUE84ZNl7oQ9t26i8zGQLgh/B/6vNliM9u7VMX0soYDC9pEWd4TsWeetlYMzl/UIzitYan5q9aQ2UfS7HENHQGvGfOjsa75gP3SVwpufK8Sb1VFRFsnJKsXzgWq+y9iWLieJe596poEzUP2Wkt17mSGwH9rWukTy5S1ddZoZXUxDQiMtfXFj9NOnPDUA8psmERifivaD8IvhMEYwlEk+u6MrxF7IhasBs8dYGEZW+YDeaRz6mzK37sarYWgCUJgEYTJ97rmcRedgvnj+28YES/pw==",
"keyId": "90701"
};
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Blaze Integration Sample!'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
_blazeSdkFlutterPlugin.initiate(
createSDKPayload(createInitiatePayload()),
handleCallbackEvent);
},
child: const Text('Initiate SDK'),
),
ElevatedButton(
onPressed: () {
_blazeSdkFlutterPlugin
.process(createSDKPayload(createProcessPayload()));
},
child: const Text('Process'),
),
ElevatedButton(
onPressed: () {
_blazeSdkFlutterPlugin.terminate();
},
child: const Text('Terminate'),
)
],
),
),
),
);
}
}
更多关于Flutter集成Blaze平台功能插件blaze_sdk_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Blaze平台功能插件blaze_sdk_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
要在Flutter项目中集成Blaze平台的功能插件 blaze_sdk_flutter,你需要按照以下步骤进行操作:
1. 添加依赖
首先,在 pubspec.yaml 文件中添加 blaze_sdk_flutter 的依赖。
dependencies:
flutter:
sdk: flutter
blaze_sdk_flutter: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get 来获取依赖。
2. 初始化 SDK
在你的 Flutter 项目中的 main.dart 文件中初始化 blaze_sdk_flutter。
import 'package:flutter/material.dart';
import 'package:blaze_sdk_flutter/blaze_sdk_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Blaze SDK
await BlazeSdkFlutter.initialize(
apiKey: 'YOUR_API_KEY',
environment: BlazeEnvironment.sandbox, // 或者 BlazeEnvironment.production
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
3. 使用 Blaze SDK 功能
你可以在你的应用中使用 BlazeSdkFlutter 提供的各种功能。例如,调用一个 API 或执行某些操作。
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Blaze SDK Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 调用 Blaze SDK 的某个功能
try {
var result = await BlazeSdkFlutter.someFunction();
print('Result: $result');
} catch (e) {
print('Error: $e');
}
},
child: Text('Call Blaze SDK'),
),
),
);
}
}
4. 处理平台特定的配置
根据 Blaze SDK 的要求,你可能需要在 Android 和 iOS 项目中做一些额外的配置。
Android
在 android/app/build.gradle 文件中,确保 minSdkVersion 符合 Blaze SDK 的要求。
android {
defaultConfig {
minSdkVersion 21
// 其他配置
}
}
iOS
在 ios/Podfile 文件中,确保 platform 版本符合 Blaze SDK 的要求。
platform :ios, '11.0'
然后在 ios/Runner/Info.plist 文件中添加必要的权限或配置。
5. 运行你的应用
完成上述步骤后,运行你的 Flutter 应用:
flutter run

