Flutter身份验证插件mykad_inspector的使用

发布于 1周前 作者 wuwangju 来自 Flutter

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

1 回复

更多关于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.xmlInfo.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>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!