Flutter卡片识别插件blinkcard_flutter的使用

Flutter卡片识别插件blinkcard_flutter的使用

AI驱动的身份信用卡扫描功能,专为Flutter应用设计。

我们已经使创建一个示例应用程序或将插件安装到现有的iOS或Android应用变得快速且简单。

请注意,为了获得最佳性能并充分利用所有功能,建议使用我们的原生SDK(适用于iOS或Android)。

然而,由于包装器是开源的,你可以根据自己的需求添加所需的特性。

要求

blinkcard_flutter插件开发时使用的Flutter SDK版本为1.17.5。 有关Flutter的帮助,请参阅官方文档。

开始使用

首先,如果需要,创建一个空项目:

flutter create project_name

pubspec.yaml文件中添加blinkcard_flutter依赖:

dependencies:
  ...
  blinkcard_flutter:

快速开始使用示例应用

要尝试blinkcard_flutter插件,你可以生成一个最小化的示例应用。为此,请运行./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 = BlinkCardRecognizer();
  OverlaySettings settings = BlinkCardOverlaySettings();

  // 设置你的许可证密钥
  if (Theme.of(context).platform == TargetPlatform.iOS) {
    license = "";
  } else if (Theme.of(context).platform == TargetPlatform.android) {
    license = "";
  }

  try {
    // 执行扫描并获取结果
    results = await MicroblinkScanner.scanWithCamera(RecognizerCollection([recognizer]), settings, license);
  } on PlatformException {
    // 处理异常
  }
}

更多关于Flutter卡片识别插件blinkcard_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter卡片识别插件blinkcard_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中集成和使用blinkcard_flutter插件来进行卡片识别的示例代码。这个插件通常用于识别身份证、驾驶证等带有条形码或二维码的卡片。

第一步:添加依赖

首先,在你的pubspec.yaml文件中添加blinkcard_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  blinkcard_flutter: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

第二步:配置权限

在你的AndroidManifest.xml文件中添加必要的权限,如相机权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <!-- 其他配置 -->

</manifest>

对于iOS,你需要在Info.plist中添加相机使用说明:

<key>NSCameraUsageDescription</key>
<string>需要访问相机来识别卡片</string>

第三步:实现卡片识别功能

在你的Flutter项目中,创建一个页面来触发卡片识别功能。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:blinkcard_flutter/blinkcard_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CardRecognitionScreen(),
    );
  }
}

class CardRecognitionScreen extends StatefulWidget {
  @override
  _CardRecognitionScreenState createState() => _CardRecognitionScreenState();
}

class _CardRecognitionScreenState extends State<CardRecognitionScreen> {
  String result = '';

  Future<void> scanCard() async {
    try {
      var cardRecognitionResult = await BlinkCardRecognizer.scanCard(
        withOverlay: true,  // 是否显示扫描界面上的覆盖层
        beepOnScan: true,   // 扫描成功时是否发出声音
      );

      if (cardRecognitionResult != null) {
        setState(() {
          result = 'Card Recognized:\n' +
              'Full Name: ${cardRecognitionResult.fullName}\n' +
              'Date of Birth: ${cardRecognitionResult.dateOfBirth}\n' +
              'Document Number: ${cardRecognitionResult.docNumber}\n' +
              'Expiry Date: ${cardRecognitionResult.expiryDate}\n' +
              'Nationality: ${cardRecognitionResult.nationality}\n' +
              'Sex: ${cardRecognitionResult.sex}\n';
        });
      }
    } catch (e) {
      setState(() {
        result = 'Error: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Card Recognition Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(result),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: scanCard,
              child: Text('Scan Card'),
            ),
          ],
        ),
      ),
    );
  }
}

注意事项

  1. 权限处理:在实际应用中,你需要处理权限请求和拒绝的情况。可以使用permission_handler等插件来处理权限。
  2. UI优化:示例中的UI非常基础,你可以根据需要进行自定义和优化。
  3. 错误处理:示例中只简单地捕获了异常并显示了错误信息,你可能需要更详细的错误处理逻辑。

这样,你就可以在你的Flutter应用中集成并使用blinkcard_flutter插件来进行卡片识别了。

回到顶部