Flutter身份验证插件mykad_inspector的使用
Flutter身份验证插件mykad_inspector的使用
MyKadInspector 是一个用于提取和分析马来西亚身份证(MyKad)号码信息的 Dart/Flutter 包。它可以根据 MyKad 号码提供出生日期、年龄、性别和出生地等详细信息。
功能
- 提取 MyKad 信息:从有效的 MyKad 号码中检索出生日期、年龄、性别和出生地等详细信息。
- IC 号码格式化:自动将 MyKad 号码格式化为标准的
xxxxxx-xx-xxxx
格式。 - 验证:基于号码结构和内容验证 MyKad 号码的有效性。
- 无需互联网连接:所有操作均在本地完成,无需网络连接。
安装
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
mykad_inspector: ^0.0.1
然后运行 flutter pub get
来安装该包。
开始使用
首先,在代码中导入依赖:
import 'package:mykad_inspector/mykad_inspector.dart';
接下来,可以通过以下代码获取 MyKad 信息:
void main() async {
// 创建 MyKadInspector 对象
final myKadInspector = MyKadInspector();
// MyKad 号码可以是 xxxxxx-xx-xxxx 或 xxxxxxxxxxxx 格式
final myKadInfo = await myKadInspector.extractICDetails('950130-03-2947');
if (myKadInfo != null) {
// 输出解析结果
print('年龄: ${myKadInfo.age}');
print('出生日期: ${myKadInfo.dateOfBirth}');
print('性别: ${myKadInfo.gender}');
print('出生地: ${myKadInfo.placeOfBirth}');
print('格式化的 IC 号码: ${myKadInfo.formattedIcNumber}');
print('原始 IC 号码: ${myKadInfo.icNumber}');
} else {
// 如果 IC 号码无效,返回 null
print('无效的 MyKad 号码');
}
}
MyKadInfo 模型类
以下是 MyKadInfo
类的定义:
class MyKadInfo {
final String icNumber; // 原始 IC 号码
final String formattedIcNumber; // 格式化的 IC 号码
final DateTime dateOfBirth; // 出生日期
final int age; // 年龄
final String placeOfBirth; // 出生地
final String gender; // 性别
MyKadInfo({
required this.icNumber,
required this.formattedIcNumber,
required this.dateOfBirth,
required this.age,
required this.placeOfBirth,
required this.gender,
});
}
示例输出
年龄: 29
出生日期: 1995-01-30 00:00:00.000
性别: M
出生地: Kelantan
格式化的 IC 号码: 950130-03-2947
原始 IC 号码: 950130032947
更多关于Flutter身份验证插件mykad_inspector的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter身份验证插件mykad_inspector的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
mykad_inspector
是一个用于马来西亚身份证(MyKad)验证的 Flutter 插件。它可以帮助开发者读取和验证马来西亚身份证上的信息。以下是如何在 Flutter 项目中使用 mykad_inspector
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 mykad_inspector
插件的依赖。
dependencies:
flutter:
sdk: flutter
mykad_inspector: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在你的 Dart 文件中导入 mykad_inspector
插件。
import 'package:mykad_inspector/mykad_inspector.dart';
3. 使用插件
你可以使用 MyKadInspector
类来读取和验证马来西亚身份证信息。
示例代码
import 'package:flutter/material.dart';
import 'package:mykad_inspector/mykad_inspector.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyKadInspectionScreen(),
);
}
}
class MyKadInspectionScreen extends StatefulWidget {
@override
_MyKadInspectionScreenState createState() => _MyKadInspectionScreenState();
}
class _MyKadInspectionScreenState extends State<MyKadInspectionScreen> {
String _myKadInfo = 'No MyKad data';
Future<void> _inspectMyKad() async {
try {
MyKadInfo myKadInfo = await MyKadInspector.inspect();
setState(() {
_myKadInfo = 'Name: ${myKadInfo.name}\n'
'IC Number: ${myKadInfo.icNumber}\n'
'Date of Birth: ${myKadInfo.dateOfBirth}\n'
'Gender: ${myKadInfo.gender}\n'
'Address: ${myKadInfo.address}';
});
} catch (e) {
setState(() {
_myKadInfo = 'Failed to inspect MyKad: $e';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('MyKad Inspector'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(_myKadInfo),
SizedBox(height: 20),
ElevatedButton(
onPressed: _inspectMyKad,
child: Text('Inspect MyKad'),
),
],
),
),
);
}
}
4. 运行应用
运行你的 Flutter 应用,点击 “Inspect MyKad” 按钮来读取和显示马来西亚身份证信息。
5. 处理权限
在某些设备上,读取身份证信息可能需要特定的权限。确保你在 AndroidManifest.xml
和 Info.plist
文件中添加了必要的权限。
Android
在 AndroidManifest.xml
中添加以下权限:
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
iOS
在 Info.plist
中添加以下权限:
<key>NFCReaderUsageDescription</key>
<string>We need access to NFC to read your MyKad.</string>