Flutter插件minds_digital的使用方法
Flutter插件minds_digital的使用方法
Visão Geral
概述
Minds Digital的Flutter SDK旨在为您的Flutter应用程序提供快速、简化且抽象化的语音生物识别旅程集成。
我们的软件包提供了一个API包装器,其中包含已抽象化的功能,使您可以专注于应用逻辑,而不是担心音频处理和捕获、与我们云端API的集成以及相关流程屏幕的开发。
Sobre a SDK
关于SDK
Minds Digital的Flutter SDK设计用于提供快速、简化且抽象化的语音生物识别集成。它通过封装API功能来简化开发者的工作,让他们能够集中精力在应用逻辑上,而无需关注复杂的音频处理、云端API集成以及相关流程屏幕的开发。
Documentação
文档
有关所有功能和可能性的详细信息,请参阅官方文档:官方文档
示例代码
以下是一个完整的示例代码,展示了如何使用minds_digital
插件:
import 'package:flutter/material.dart';
import 'package:minds_digital/minds_digital.dart';
import 'app_widget.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
MindsApiWrapper.initialize(
environment: Environment.sandbox,
token: 'token',
);
runApp(const AppWidget());
}
class Example extends StatelessWidget {
const Example({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text(
'Sample package',
style: TextStyle(color: Colors.white),
),
),
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
// 示例:注册流程
final response = await MindsApiWrapper.service.enrollment(
request: const BiometricsRequest(
audio: "SW4gY29tcHV0ZXIgcHJvZ3JhbW1pbmcsIEJhc2U2NCB",
cpf: '00000000000',
externalId: '123',
externalCustomerId: '123',
extension: 'ogg',
phoneNumber: '21981564763',
showDetails: true,
),
);
debugPrint(response.rawResponse.toString());
},
child: const Text('注册'),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () async {
// 示例:认证流程
final response = await MindsApiWrapper.service.authentication(
request: const BiometricsRequest(
audio: "SW4gY29tcHV0ZXIgcHJvZ3JhbW1pbmcsIEJhc2U2NCB",
cpf: '00000000000',
externalId: '123',
externalCustomerId: '123',
extension: 'ogg',
phoneNumber: '21981564763',
showDetails: true,
),
);
debugPrint(response.rawResponse.toString());
},
child: const Text('认证'),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () async {
// 示例:将电话添加到黑名单
final response = await MindsApiWrapper.service.setPhoneBlocklist(
request: const RequestPhoneBlocklist(
phoneNumber: '11111111111',
externalId: '123',
description: '发现此号码存在欺诈行为',
createdBy: 'Vitor',
),
);
debugPrint(response.toString());
},
child: const Text("添加电话到黑名单"),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () async {
// 示例:将声音添加到黑名单
final response = await MindsApiWrapper.service.setVoiceBlocklist(
request: const RequestVoiceBlocklist(
audio: "SW4gY29tcHV0ZXIgcHJvZ3JhbW1pbmcsIEJhc2U2NCB...",
externalId: '123',
description: '发现此声音存在欺诈行为',
createdBy: 'Vitor',
extension: 'ogg',
),
);
debugPrint(response.toString());
},
child: const Text("添加声音到黑名单"),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () async {
// 示例:验证语音生物识别
final response = await MindsApiWrapper.service.enrollmentVerify(cpf: "00000000000");
debugPrint(response.toString());
},
child: const Text("验证语音生物识别"),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () async {
// 示例:语音生物识别认证
final response = await MindsApiWrapper.service.enrollmentCertify(
request: const EnrollmentCertifyRequest(cpf: '00000000000'),
);
debugPrint(response.toString());
},
child: const Text("认证语音生物识别"),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () async {
// 示例:自定义构建器流程
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => FlowRecordAudio(
request: FlowRecordAudioRequest(
context: context,
biometricsRequest: const FlowBiometricsRequest(
cpf: '00000000000',
showDetails: true,
),
processType: ProcessType.authentication,
),
onResponse: (biometricsResponse) {
debugPrint("response $biometricsResponse");
},
onError: (error) {
debugPrint("error: $error");
},
style: const FlowStyle(),
customBuilder: (context, recordingState, flowBiometricsState, buttonRecord) =>
Scaffold(
appBar: AppBar(title: const Text('自定义构建器')),
body: Builder(
builder: (context) {
if (flowBiometricsState.state is LoadingState) {
return const Center(
child: CircularProgressIndicator(),
);
}
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Center(
child: Text(
flowBiometricsState.randomSentence.sentence.text,
style: const TextStyle(
color: Colors.black,
),
textAlign: TextAlign.center,
),
),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Visibility(
visible: recordingState.isRecording,
child: const Text(
'正在录制:',
style: TextStyle(color: Colors.red),
),
),
const SizedBox(width: 10),
_buildTimer(recordingState.recordDuration),
],
),
buttonRecord,
],
);
},
),
),
),
),
);
},
child: const Text("自定义构建器示例"),
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () {
// 示例:对话框流程
FlowRecordAudio(
request: FlowRecordAudioRequest(
context: context,
biometricsRequest: const FlowBiometricsRequest(
cpf: '00000000000',
showDetails: true,
),
processType: ProcessType.authentication,
),
onResponse: (biometricsResponse) {
debugPrint("response: $biometricsResponse");
},
onError: (error) {
debugPrint("error: $error");
},
style: const FlowStyle(fullScreenDialog: true),
).show(context);
},
child: const Text('对话框'),
)
],
),
),
);
}
}
// 构建计时器
Widget _buildTimer(int recordDuration) {
final String minutes = _formatNumber(recordDuration ~/ 60);
final String seconds = _formatNumber(recordDuration % 60);
return Text(
'$minutes : $seconds',
);
}
// 格式化数字
String _formatNumber(int number) {
String numberStr = number.toString();
if (number < 10) {
numberStr = '0$numberStr';
}
return numberStr;
}
更多关于Flutter插件minds_digital的使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter插件minds_digital的使用方法的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,使用一个功能未知的插件(如minds_digital
)可能会带来一些挑战,尤其是当官方文档或社区资源缺乏时。以下是一些步骤和建议,帮助你理解和使用这个插件:
1. 查找插件的来源和文档
- Pub.dev: 首先,你可以在pub.dev上搜索
minds_digital
插件,查看是否有官方文档或说明。 - GitHub: 如果插件是开源的,通常可以在GitHub上找到其源代码和README文件,这些文件可能包含使用说明和示例代码。
- 社区和论坛: 在Flutter社区、Stack Overflow或GitHub Issues中搜索
minds_digital
,看看是否有其他开发者分享过使用经验或遇到的问题。
2. 分析插件的依赖和代码
- 查看
pubspec.yaml
: 打开插件的pubspec.yaml
文件,查看其依赖项和版本信息,这可以帮助你了解插件可能的功能。 - 阅读源代码: 如果插件是开源的,阅读其源代码可以帮助你理解其功能和工作原理。重点关注
lib
目录下的Dart文件。
3. 尝试基本集成
- 添加依赖: 在你的Flutter项目的
pubspec.yaml
文件中添加minds_digital
插件的依赖项。dependencies: minds_digital: ^版本号
- 导入插件: 在你的Dart文件中导入插件。
import 'package:minds_digital/minds_digital.dart';
- 初始化插件: 尝试初始化插件并调用其提供的方法或类。
void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Minds Digital Plugin Example'), ), body: Center( child: ElevatedButton( onPressed: () { // 调用插件的方法 MindsDigital.initialize(); }, child: Text('Initialize Plugin'), ), ), ), ); } }