Flutter身份识别插件mykad的使用

Flutter身份识别插件mykad的使用

安装

在您的项目中使用该插件时,首先需要将其添加到 pubspec.yaml 文件中。以下是安装步骤:

dependencies:
  mykad: ^0.0.1

执行以下命令以更新依赖项:

flutter pub get

示例代码

以下是一个完整的示例代码,展示如何使用 mykad 插件解析马来西亚身份证号码(MyKad)。

示例代码文件:example/mykad_example.dart

// ignore_for_file: avoid_print

import 'package:mykad/mykad.dart'; // 导入 mykad 插件

void main() {
  // 使用 MyKad.parse 方法解析身份证号码
  final mykad = MyKad.parse(
    '980927120123', // 输入的身份证号码
    referenceDate: DateTime(2023), // 可选参数:参考日期,默认为当前日期
  );

  // 输出解析后的信息
  print(mykad.formattedNric); // 格式化的身份证号码,例如:980927-12-0123
  print(mykad.gender); // 性别,例如:Gender.male
  print(mykad.birthdate); // 出生日期,例如:DateTime(1998, 09, 27)
  print(mykad.age); // 年龄,例如:25
}

运行结果

运行上述代码后,您将看到类似以下的输出:

980927-12-0123
Gender.male
2023-09-27 00:00:00.000
25

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

1 回复

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


mykad 是一个用于在 Flutter 应用中读取马来西亚国民身份证(MyKad)信息的插件。这个插件通常与 NFC 技术结合使用,允许应用通过 NFC 读取 MyKad 上的信息。以下是如何在 Flutter 项目中使用 mykad 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 mykad 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  mykad: ^0.0.1  # 请检查最新版本

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

2. 配置 Android Manifest

为了在 Android 设备上使用 NFC 功能,你需要在 AndroidManifest.xml 文件中添加以下权限和配置:

<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" android:required="true" />

<application>
    <activity>
        <intent-filter>
            <action android:name="android.nfc.action.TECH_DISCOVERED" />
        </intent-filter>

        <meta-data
            android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tech_filter" />
    </activity>
</application>

res/xml/nfc_tech_filter.xml 文件中定义 NFC 技术过滤器:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <tech-list>
        <tech>android.nfc.tech.IsoDep</tech>
    </tech-list>
</resources>

3. 使用 mykad 插件

在你的 Flutter 代码中,导入 mykad 插件并开始使用它。

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyKadReader(),
    );
  }
}

class MyKadReader extends StatefulWidget {
  [@override](/user/override)
  _MyKadReaderState createState() => _MyKadReaderState();
}

class _MyKadReaderState extends State<MyKadReader> {
  String _myKadInfo = 'Tap your MyKad to read information';

  Future<void> _readMyKad() async {
    try {
      final myKad = MyKad();
      final info = await myKad.read();
      setState(() {
        _myKadInfo = 'Name: ${info.name}\nIC Number: ${info.icNumber}';
      });
    } catch (e) {
      setState(() {
        _myKadInfo = 'Failed to read MyKad: $e';
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('MyKad Reader'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              _myKadInfo,
              style: TextStyle(fontSize: 18),
              textAlign: TextAlign.center,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _readMyKad,
              child: Text('Read MyKad'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部