Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 1.55 KB

README.md

File metadata and controls

61 lines (48 loc) · 1.55 KB

react-native-passport-reader

Adapted from 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 install react-native-passport-reader --save
$ react-native link react-native-passport-reader

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 'react-native-passport-reader'
// { scan, cancel, isSupported }

async function scan () {
  // 1. start a scan
  // 2. press the back of your android phone against the passport
  // 3. wait for the scan(...) Promise to get resolved/rejected

  const { 
    firstName, 
    lastName, 
    gender, 
    issuer, 
    nationality, 
    photo 
  } = await PassportReader.scan({
    // yes, you need to know a bunch of data up front
    // this is data you can get from reading the MRZ zone of the passport
    documentNumber: 'ofDocumentBeingScanned',
    dateOfBirth: 'yyMMdd',
    dateOfExpiry: 'yyMMdd'
  })

  const { base64, width, height } = photo
}