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运行应用程序。

插件使用

  1. 通过调用方法MicroblinkScanner.scanWithCamera()并传递所需的RecognizerCollectionOverlaySettings以及您的许可证密钥来执行扫描。有关许可的更多信息,请点击这里
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 {
      // 处理异常
    }
}
  1. 扫描完成后,变量results将包含来自RecognizerCollection设置中的非空RecognizerResults列表。然后可以单独访问每个结果。如果手动关闭扫描,该方法将返回一个空列表。

有关更多信息,请参考我们的示例应用程序源代码。

可用API

所有可用的识别器可以在BlinkID/lib/recognizers中找到。

所有可用的覆盖层可以在BlinkID/lib/overlays中找到。

为了获得100%的功能和最大控制,考虑使用本地SDK。

平台特定事项

插件实现位于lib文件夹中,而平台特定的实现位于androidios文件夹中。

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

1 回复

更多关于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'),
    );
  }
}

注意事项

  1. 许可密钥:确保你已经从Microblink获取了有效的许可密钥,并在代码中替换"YOUR_LICENSE_KEY_HERE"
  2. 识别器配置:根据你的需求,你可以配置不同的识别器,比如MrtdRecognizer用于护照识别,DocumentRecognizer用于一般文档识别等。
  3. 错误处理:在实际应用中,你应该添加更多的错误处理逻辑,比如处理用户取消扫描、设备不支持摄像头等情况。

以上就是一个基本的Flutter项目中使用blinkid_flutter插件进行身份识别和文档扫描的示例。希望这对你有所帮助!

回到顶部