Flutter金融助手插件slang_bfsi_assistant的使用
Flutter金融助手插件slang_bfsi_assistant的使用
安装Slang BFSI Assistant包
在您的代码库中运行以下命令以安装所需的包。
flutter pub add slang_bfsi_assistant
完成后,运行命令dart pub get
并确保Slang助手已添加到依赖项中。
dependencies:
slang_bfsi_assistant: ^2.0.2
代码集成
初始化
接下来,使用在Slang控制台创建助手时获得的密钥初始化SDK。
注意 这应该理想情况下在主方法中执行。
import 'package:slang_bfsi_assistant/slang_bfsi_assistant.dart';
// 获取给定助手的AssistantId和APIKey
var assistantConfig = AssistantConfiguration()
..assistantId = "<AssistantId>"
..apiKey = "<APIKey>";
// 使用上述配置初始化SDK
SlangBFSIAssistant.initialize(assistantConfig);
注意 在将应用程序发布给公众之前,请确保环境变量设置为生产环境。默认值设置为阶段。
var assistantConfig = AssistantConfiguration()
..assistantId = "<AssistantId>"
..apiKey = "<APIKey>"
..environment = AssistantEnvironment.production; // 设置为 .production
显示触发(麦克风图标)
注意 可以根据需要调用“显示”和“隐藏”方法来控制助手的可见性。
SlangBFSIAssistant.getUI().showTrigger(); // 还有一个对应的 hideTrigger 方法
注意
触发器是粘性的,这意味着它会在所有活动后显示出来。如果需要在特定活动上隐藏触发器,则需要调用:SlangBFSIAssistant.getUI().hideTrigger()
实现动作
最后但同样重要的是,应用程序需要实现与助手支持的各种用户旅程相关的操作。可以按以下方式实现:
SlangBFSIAssistant.setOnStockSearchListener(
(stockInfo, searchUserJourney) => {
// 使用stockInfo执行股票搜索操作。
print(stockInfo.name),
print(stockInfo.bseCode),
print(stockInfo.nseCode),
print(stockInfo.isinNumber),
print(stockInfo.customId),
print(stockInfo.action),
print(stockInfo.utterance),
});
OnStockSearchListener回调
(stockInfo, searchUserJourney)
可能触发交易信息的样本语句
- “显示TCS股票”
- “显示Infosys股票”
StockInfo参数
StockInfo
包含原始股票搜索请求的详细信息。其结构描述如下:
// 当用户搜索类似内容时
// "显示TCS股票"
// 这是StockInfo参数将如何填充
{
"name": "Tata Consultancy Services Limited"
"bseCode": "TCS",
"nseCode": "TCS",
"isinNumber": "INE467B01029",
"customId": "CustomID001",
"action": "search",
"utterance": "Show me TCS Stock"
}
注意
Action
包括:
"search"
"buy"
"sell"
完整示例代码
以下是完整的示例代码,展示如何使用 slang_bfsi_assistant
插件。
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:slang_bfsi_assistant/slang_bfsi_assistant.dart';
void main() {
runApp(const MaterialApp(
home: MyApp(),
debugShowCheckedModeBanner: false,
));
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _stockInfo = 'Stock Search Info appears here'; // 用于存储股票信息
[@override](/user/override)
void initState() {
super.initState();
initSlangAssistant();
}
void initSlangAssistant() {
// 获取给定助手的AssistantId和APIKey
var assistantConfig = AssistantConfiguration()
..assistantId = "<AssistantId>"
..apiKey = "<APIKey>";
// 使用上述配置初始化SDK
SlangBFSIAssistant.initialize(assistantConfig);
// 启用Slang触发器显示在屏幕上
SlangBFSIAssistant.getUI().showTrigger();
// 获取股票搜索回调并执行所需的操作
SlangBFSIAssistant.setOnStockSearchListener(
(stockInfo, searchUserJourney) => {
// 使用stockInfo执行股票搜索操作
print(stockInfo.name),
print(stockInfo.bseCode),
print(stockInfo.nseCode),
print(stockInfo.isinNumber),
print(stockInfo.customId),
print(stockInfo.action),
print(stockInfo.utterance),
// 设置状态变量作为示例,展示股票搜索对象的JSON表示
setState(() {
try {
JsonEncoder encoder = const JsonEncoder.withIndent(' ');
String searchMapString = encoder.convert(stockInfo);
_stockInfo = searchMapString;
} catch (e) {
print(e);
}
})
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Slang BFSI PlayGround App'),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Container(height: 16), // 设置高度
Flexible(
child: FractionallySizedBox(
widthFactor: 0.9,
heightFactor: 0.7,
child: SingleChildScrollView(
physics: const AlwaysScrollableScrollPhysics(),
child: Container(
height: MediaQuery.of(context).size.height,
decoration: const BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.black,
),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Text(
'$_stockInfo\n',
style: const TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
color: Colors.white),
),
),
))))
],
))));
}
}
更多关于Flutter金融助手插件slang_bfsi_assistant的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter金融助手插件slang_bfsi_assistant的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
slang_bfsi_assistant
是一个 Flutter 插件,专为金融服务业(Banking, Financial Services, and Insurance,简称 BFSI)设计的助手工具。它可以帮助开发者快速集成金融服务相关的功能,如支付、账户管理、交易处理等。以下是使用 slang_bfsi_assistant
插件的基本步骤和示例代码。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 slang_bfsi_assistant
插件的依赖。
dependencies:
flutter:
sdk: flutter
slang_bfsi_assistant: ^1.0.0 # 请替换为最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化插件
在你的 Flutter 应用中初始化 slang_bfsi_assistant
插件。通常,你可以在 main.dart
文件中进行初始化。
import 'package:flutter/material.dart';
import 'package:slang_bfsi_assistant/slang_bfsi_assistant.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化插件
await SlangBFSIAssistant.initialize(
apiKey: 'your_api_key_here', // 替换为你的 API 密钥
environment: Environment.sandbox, // 选择环境(sandbox 或 production)
);
runApp(MyApp());
}
3. 使用插件功能
slang_bfsi_assistant
提供了多种金融服务相关的功能。以下是一些常见的用例:
3.1 支付处理
void processPayment() async {
try {
PaymentResponse response = await SlangBFSIAssistant.processPayment(
amount: 100.0,
currency: 'USD',
paymentMethod: PaymentMethod.creditCard,
cardDetails: CardDetails(
cardNumber: '4111111111111111',
expiryDate: '12/25',
cvv: '123',
),
);
print('Payment successful: ${response.transactionId}');
} catch (e) {
print('Payment failed: $e');
}
}
3.2 获取账户余额
void getAccountBalance() async {
try {
double balance = await SlangBFSIAssistant.getAccountBalance();
print('Account balance: $balance');
} catch (e) {
print('Failed to get balance: $e');
}
}
3.3 查询交易历史
void getTransactionHistory() async {
try {
List<Transaction> transactions = await SlangBFSIAssistant.getTransactionHistory();
for (var transaction in transactions) {
print('Transaction ID: ${transaction.id}, Amount: ${transaction.amount}');
}
} catch (e) {
print('Failed to get transaction history: $e');
}
}
4. 处理回调
slang_bfsi_assistant
支持事件回调,你可以监听支付成功、失败等事件。
void setupCallbacks() {
SlangBFSIAssistant.onPaymentSuccess.listen((PaymentResponse response) {
print('Payment succeeded: ${response.transactionId}');
});
SlangBFSIAssistant.onPaymentFailed.listen((PaymentError error) {
print('Payment failed: ${error.message}');
});
}
5. 释放资源
在应用退出时,确保释放插件占用的资源。
void dispose() {
SlangBFSIAssistant.dispose();
}
6. 处理错误
在使用 slang_bfsi_assistant
时,可能会遇到各种错误。确保在代码中妥善处理这些错误,以提供更好的用户体验。
void handleErrors() async {
try {
// 调用插件功能
} on PaymentError catch (e) {
print('Payment error: ${e.message}');
} on NetworkError catch (e) {
print('Network error: ${e.message}');
} catch (e) {
print('Unknown error: $e');
}
}
7. 测试与调试
在开发过程中,建议使用 Environment.sandbox
环境进行测试。在生产环境中,切换到 Environment.production
。
await SlangBFSIAssistant.initialize(
apiKey: 'your_api_key_here',
environment: Environment.production, // 切换到生产环境
);