Flutter身份证扫描插件mrzscanner_flutter的使用
Flutter身份证扫描插件mrzscanner_flutter的使用
安装指南
请遵循以下简单步骤将我们的SDK集成到您的项目中:
- 添加我们的Flutter包
要将mrzscanner_flutter包添加到您的项目中,您可以选择从pub.dev
或从本地路径使用该包。
如果您想从pub.dev
使用该包,在pubspec.yaml
文件中添加包名称和版本号:
dependencies:
flutter:
sdk: flutter
mrzscanner_flutter: <包版本>
如果您想使用本地包,从https://mrzscanner.com/documentation
下载包,并在pubspec.yaml
文件中设置包路径:
dependencies:
flutter:
sdk: flutter
mrzscanner_flutter: <包版本>
path: <包本地路径>
-
在终端运行
flutter pub get
命令以安装项目中的指定依赖项 -
在
main.dart
文件中导入插件:
import 'package:mrzscanner_flutter/mrzscanner_flutter.dart';
iOS配置
- MRZScanner插件需要使用相机,因此您需要在iOS项目的
Info.plist
文件中指定相机使用描述:
<key>NSCameraUsageDescription</key>
<string>相机用于MRZ扫描</string>
API方法
startScanner
// 激活扫描器,默认为SCANNER_TYPE_MRZ类型
MrzScanner.startScanner()
resumeScanning
// 在扫描器暂停/停止后恢复扫描。通常在成功扫描后调用。
MrzScanner.resumeScanning()
closeScanner
// 停止并关闭扫描器。
MrzScanner.closeScanner()
setScannerType
// 指定您想要使用的扫描器类型。
// 有两种选项:"MRZ扫描器"和"文档图像扫描器"。
// "MRZ扫描器"用于扫描MRZ。
// "文档图像扫描器"用于捕捉身份证件的正面和背面图像。
MrzScanner.setScannerType(ScannerType int)
capturedIdImage
// 返回扫描仪ID图像的base64字符串。
MrzScanner.captureIdImage()
setDateFormat
// 设置解析日期时使用的日期格式。
// [@param](/user/param) dateFormat 例如:"dd.MM.yyyy"
MrzScanner.setDateFormat(String dateFormat)
getSdkVersion
// 获取当前SDK版本。
MrzScanner.sdkVersion(): String
setIDActive
// 指定扫描器是否应检测并返回身份证结果。
MrzScanner.setIDActive(isIDActive: Boolean)
setPassportActive
// 指定扫描器是否应检测并返回护照结果。
MrzScanner.setPassportActive(isPassportActive: Boolean)
setVisaActive
// 指定扫描器是否应检测并返回签证结果。
MrzScanner.setVisaActive(isVisaActive: Boolean)
setMaxThreads
// 指定扫描器在扫描过程中可以使用的最大CPU线程数。
MrzScanner.setMaxThreads(maxThreads: Int)
setEffortLevel
// 指定扫描器在扫描过程中应使用的努力级别。
MrzScanner.setEffortLevel(effortLevel: Int)
toggleFlash
// 触发手电筒。
MrzScanner.toggleFlash(active : Boolean)
scanFromGallery
// 触发图像选择器,并从相册扫描。
MrzScanner.scanFromGallery()
registerWithLicenceKey
// 使用提供的许可证密钥注册以移除结果中的星号(*)。
// [@param](/user/param) key 提供的许可证密钥。
// @return 0表示成功,-1表示注册失败。
MrzScanner.registerWithLicenseKey(key: String): Int
startScannerWithCustomOverlay
// 自定义扫描器中查找器的叠加层。
// [@param](/user/param) base64String 接受一个base64类型的字符串。
MrzScanner.startScannerWithCustomOverlay(base64String : String)
startContinuousScanner
// 启动带有连续扫描功能的扫描器视图。
// 成功扫描后,扫描器不会被取消或暂停。
// 调用closeScanner()来关闭扫描器。
// 有关进一步的连续扫描行为更改,请参阅setIgnoreDuplicatesEnabled。
// 忽略重复用于指定扫描器是否应忽略文档编号与前一次成功扫描相同的扫描结果。
MrzScanner.setContinuousScanningEnabled(boolean : activated, ignoreDuplicate : Bool)
setVibrateOnSuccessfulScan
// 启用成功扫描时振动选项。
MrzScanner.setVibrateOnSuccessfulScan(boolean : activated)
setExtractPortraitEnabled
// 启用成功扫描时自动提取肖像图像;默认值:false。
MrzScanner.setExtractPortraitEnabled(activated);
setExtractFullPassportImageEnabled
// 启用成功扫描时自动提取护照图像;默认值:false。
MrzScanner.setExtractFullPassportImageEnabled(activated);
setExtractIdBackImageEnabled
// 启用成功扫描时自动提取身份证背面图像;默认值:false。
MrzScanner.setExtractIdBackImageEnabled(activated);
setPartialViewScanner
// 设置扫描矩形以限制扫描区域。参数值表示扫描预览的百分比。
// [@param](/user/param) x 默认值:5。表示扫描矩形的左上角点。[0,...,100]
// [@param](/user/param) y 默认值:20。表示扫描矩形的左上角点。[0,...,100]
// [@param](/user/param) width 默认值:5。表示扫描矩形的宽度。[0,...,100]
// [@param](/user/param) height 默认值:5。表示扫描矩形的高度。[0,...,100]
MrzScanner.startPartialViewScanner(int : x, int : y, int : width, int : height)
更多关于Flutter身份证扫描插件mrzscanner_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter身份证扫描插件mrzscanner_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中使用mrzscanner_flutter
插件来扫描身份证(MRZ,Machine Readable Zone)信息的示例代码。这个插件主要用于扫描护照、身份证等证件上的MRZ信息。
首先,你需要在你的pubspec.yaml
文件中添加mrzscanner_flutter
依赖:
dependencies:
flutter:
sdk: flutter
mrzscanner_flutter: ^最新版本号 # 请替换为最新的版本号
然后,运行flutter pub get
来获取依赖。
接下来,你可以在你的Flutter应用中使用这个插件。以下是一个简单的示例代码,展示如何使用mrzscanner_flutter
进行MRZ扫描:
import 'package:flutter/material.dart';
import 'package:mrzscanner_flutter/mrzscanner_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MRZ Scanner Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MRZScannerScreen(),
);
}
}
class MRZScannerScreen extends StatefulWidget {
@override
_MRZScannerScreenState createState() => _MRZScannerScreenState();
}
class _MRZScannerScreenState extends State<MRZScannerScreen> {
String resultText = '';
Future<void> _scanMRZ() async {
try {
String result = await MRZScanner.scanMRZ();
setState(() {
resultText = result;
});
} catch (e) {
setState(() {
resultText = 'Error: ${e.message}';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('MRZ Scanner Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
resultText,
style: TextStyle(fontSize: 20),
textAlign: TextAlign.center,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _scanMRZ,
child: Text('Scan MRZ'),
),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个按钮用于启动MRZ扫描。扫描完成后,结果会显示在屏幕上。
注意:
- 在实际使用中,你需要确保设备具有相机权限,并且已经在
AndroidManifest.xml
和Info.plist
中正确配置了相机权限。 MRZScanner.scanMRZ()
方法会启动相机并尝试识别MRZ信息。如果识别成功,它会返回MRZ的文本内容;如果失败,它会抛出一个异常。
请根据你的实际需求调整和扩展这个示例代码。希望这对你有所帮助!