1.0.3 • Published 6 months ago

nfcpassportreader v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

NFC Passport Reader

Adapted from react-native-passport-reader. Individual modifications are too many to enumerate, but essentially: the workflow code was adapted to the needs of a React Native module, and the scanning code was largely left as is.

Getting started

$ npm i nfcpassportreader --save
$ react-native link nfcpassportreader

In your android/app/build.gradle add packagingOptions:

android {
    ...
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
}

In AndroidManifest.xml add:

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

If your app will not function without nfc capabilities, set android:required above to true

Usage

import PassportReader from 'nfcpassportreader'

const [passportData, setPassportData] = useState(null);

const scanPassport = async () => {
  const { firstName, lastName, gender, issuer, nationality, photo } = await PassportReader.scan({
    documentNumber: 'ofDocumentBeingScanned',
    dateOfBirth: 'yyMMdd',
    dateOfExpiry: 'yyMMdd'
  })

  setPassportData({
    firstName,
    lastName,
    gender,
    issuer,
    nationality,
    photo
  })
}

// Example on how to display it
return (
  <View style={styles.container}>
    <Text>Passport data:</Text>
    <Text>{passportData.firstName}</Text>
    <Text>{passportData.lastName}</Text>
    <Text>{passportData.gender}</Text>
    <Text>{passportData.issuer}</Text>
    <Text>{passportData.nationality}</Text>
    <Image 
      source={{ uri: passportData.photo.base64 }}
      style={{ width: 150, height: 250 }}
    />
  </View>
);

To-do

  1. Scan MRZ
  2. Fallback for NFC Scanning – Image taking
1.0.3

6 months ago

1.0.2

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago