Flutter身份识别与文档扫描插件blinkid_flutter的使用
Flutter身份识别与文档扫描插件blinkid_flutter的使用
BlinkID SDK Flutter插件
BlinkID SDK Flutter插件提供AI驱动的身份文档扫描功能,适用于Flutter应用。我们使其变得简单快速,无论是创建示例应用程序还是将插件安装到现有的iOS或Android应用中。
请注意,为了获得最佳性能和访问所有功能,建议使用我们的本地SDK(iOS或Android)。然而,由于该包装器是开源的,您可以根据需要添加自己的功能。
要求
BlinkID插件是用Flutter SDK版本1.17.5开发的。有关Flutter的帮助,请查看官方文档。
入门指南
首先,如果需要,创建一个空项目:
flutter create project_name
在pubspec.yaml
文件中添加blinkid_flutter
依赖项:
dependencies:
...
blinkid_flutter:
使用示例应用快速入门
要尝试BlinkID插件,可以生成一个最小的示例应用程序。为此运行./initFlutterSample.sh
脚本。
要运行示例应用程序,请使用以下命令:
cd sample/
flutter run
如果在运行应用程序时遇到问题,请确保通过运行flutter doctor
正确配置了工具。您也可以尝试从VSCode、Android Studio或Xcode运行应用程序。
插件使用
- 通过调用方法
MicroblinkScanner.scanWithCamera()
并传递所需的RecognizerCollection
和OverlaySettings
以及您的许可证密钥来执行扫描。有关许可的更多信息,请点击这里。
Future<void> scan() async {
List<RecognizerResult> results;
Recognizer recognizer = BlinkIdMultiSideRecognizer();
OverlaySettings settings = BlinkIdOverlaySettings();
// 设置您的许可证
if (Theme.of(context).platform == TargetPlatform.iOS) {
license = "YOUR_IOS_LICENSE_KEY";
} else if (Theme.of(context).platform == TargetPlatform.android) {
license = "YOUR_ANDROID_LICENSE_KEY";
}
try {
// 执行扫描并收集结果
results = await MicroblinkScanner.scanWithCamera(RecognizerCollection([recognizer]), settings, license);
} on PlatformException {
// 处理异常
}
}
- 扫描完成后,变量
results
将包含来自RecognizerCollection
设置中的非空RecognizerResults
列表。然后可以单独访问每个结果。如果手动关闭扫描,该方法将返回一个空列表。
有关更多信息,请参考我们的示例应用程序源代码。
可用API
所有可用的识别器可以在BlinkID/lib/recognizers
中找到。
所有可用的覆盖层可以在BlinkID/lib/overlays
中找到。
为了获得100%的功能和最大控制,考虑使用本地SDK。
平台特定事项
插件实现位于lib
文件夹中,而平台特定的实现位于android
和ios
文件夹中。
Android
Android文件夹在运行./initFlutterSample.sh
后完全初始化。
iOS
要在iOS上初始化BlinkID框架,在向pubspec.yaml
添加对blinkid_flutter
的依赖项后,转到NameOfYourProject/ios
并运行pod install
。我们的blinkid_flutter
依赖于最新的PPBlinkID pod,因此它将自动安装。
要设置相机权限使用消息,打开NameOfYourProject/ios/Runner.xcworkspace
并在Runner/Runner/Info.plist
下设置Privacy - Camera Usage Description
。
许可证
- 初始化扫描需要有效的许可证密钥。您可以在注册后在Microblink Developer Hub请求免费试用许可证密钥。
- 获取BlinkID的价格和许可证信息。
更多关于Flutter身份识别与文档扫描插件blinkid_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter身份识别与文档扫描插件blinkid_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用blinkid_flutter
插件来实现身份识别和文档扫描的示例代码。这个插件是由Microblink提供的,用于在移动应用中实现快速和准确的文档扫描与身份验证。
第一步:添加依赖
首先,在你的pubspec.yaml
文件中添加blinkid_flutter
依赖:
dependencies:
flutter:
sdk: flutter
blinkid_flutter: ^5.20.0 # 请检查最新版本号
然后运行flutter pub get
来安装依赖。
第二步:配置Android和iOS项目
根据blinkid_flutter的官方文档,你需要在Android和iOS项目中进行一些配置,比如添加必要的权限和库文件。
Android配置
在android/app/src/main/AndroidManifest.xml
中添加必要的权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
iOS配置
在ios/Runner/Info.plist
中添加必要的权限:
<key>NSCameraUsageDescription</key>
<string>We need your permission to use the camera</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>We need your permission to access the photo library</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
第三步:实现扫描功能
在你的Flutter代码中,你可以按照以下方式使用blinkid_flutter
插件:
import 'package:flutter/material.dart';
import 'package:blinkid_flutter/blinkid_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('BlinkID Flutter Example'),
),
body: Center(
child: ScanButton(),
),
),
);
}
}
class ScanButton extends StatefulWidget {
@override
_ScanButtonState createState() => _ScanButtonState();
}
class _ScanButtonState extends State<ScanButton> {
late final BlinkIdRecognizerCollection _recognizers;
@override
void initState() {
super.initState();
// 初始化识别器,这里我们使用了MRTDRecognizer(护照)和DocumentRecognizer(其他文档)
_recognizers = BlinkIdRecognizerCollection()
..add(MrtdRecognizer())
..add(DocumentRecognizer());
}
void startScanning() async {
try {
final result = await BlinkId.scanDocument(
context: context,
recognizers: _recognizers,
withOverlay: true, // 是否显示扫描界面上的覆盖层
licenseKey: "YOUR_LICENSE_KEY_HERE", // 请替换为你的BlinkID许可密钥
);
// 处理扫描结果
if (result?.result != null) {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('Scan Result'),
content: Text(result?.result.toString() ?? ''),
),
);
}
} catch (e) {
print("Error scanning: $e");
}
}
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: startScanning,
child: Text('Start Scanning'),
);
}
}
注意事项
- 许可密钥:确保你已经从Microblink获取了有效的许可密钥,并在代码中替换
"YOUR_LICENSE_KEY_HERE"
。 - 识别器配置:根据你的需求,你可以配置不同的识别器,比如
MrtdRecognizer
用于护照识别,DocumentRecognizer
用于一般文档识别等。 - 错误处理:在实际应用中,你应该添加更多的错误处理逻辑,比如处理用户取消扫描、设备不支持摄像头等情况。
以上就是一个基本的Flutter项目中使用blinkid_flutter
插件进行身份识别和文档扫描的示例。希望这对你有所帮助!