React Native ID Scanner wrapper for IDScan.net ID Parsing and Camera.
npm install react-native-idscan-sdkThis plugins requires the following usage descriptions added to the application plist:
- NSCameraUsageDescriptionspecifies the reason for your app to access the device’s camera.
- NSPhotoLibraryUsageDescriptionspecifies the reason for your app to access the user’s photo library.
- Add idscan-public maven repository to the project build.gradle file.
allprojects {
    repositories {
        // ...
        maven {
            url 'https://www.myget.org/F/idscan-public/maven/'
        }
        // ...
    }
}- Insert the following into the project AndroidManifest.xmlto request camera permission.
<uses-permission android:name="android.permission.CAMERA" />
import { TouchableOpacity, Text } from 'react-native'
import { scan, IDSCANNER_CONSTANTS } from 'react-native-idscan-sdk';
// ...
const onScanID = () => {
  scan(
    IDSCANNER_CONSTANTS.TYPE_PDF, // TYPE_COMBINED, TYPE_MRZ, TYPE_PDF
    {
      // iOS
      iosDetectorPDFLicenseKey: 'iOS IdScanner PDF License Key here',
      iosDetectorMRZLicenseKey: 'iOS IdScanner MRZ License Key here',
      iosParserPDFLicenseKey: 'iOS IdParser PDF License Key here',
      // Android
      androidDetectorPDFLicenseKey: 'android IdScanner PDF License Key here',
      androidDetectorMRZLicenseKey: 'android IdScanner MRZ License Key here',
      androidParserPDFLicenseKey: 'android IdParser PDF License Key here',
    }
    (error, scannedData) => console.log(error, scannedData)
  );
}
// ...
<TouchableOpacity
  onPress={onScanID}
>
  <Text>Scan My ID</Text>
</TouchableOpacity>{
  namePrefix: string;
  IIN: string;
  race: string;
  gender: string;
  fullName: string;
  issuerIdNum: string;
  city: string;
  weight: string;
  height: string;
  address1: string;
  address2: string;
  classificationCode: string;
  issueDate: string;
  licenseNumber: string;
  expirationDate: string;
  endorsementsCode: string;
  endorsementsCodeDescription: string;
  issuedBy: string;
  firstName: string;
  middleName: string;
  lastName: string;
  nameSuffix: string;
  restrictionsCode: string;
  restrictionsCodeDescription: string;
  birthDate: string;
  countryCode: string;
  jurisdictionCode: string;
  hairColor: string;
  eyeColor: string;
  documentType: string;
  country: string;
  weightKG: string;
  weightLBS: string;
  restrictionCode: string;
  postalCode: string;
  specification: string;
  hazmateExpDate: string;
  cardRevisionDate: string;
  complianceType: string;
}{
  Dob: string;
  DocumentNumber: string;
  DocumentType: string;
  Exp: string;
  FirstName: string;
  FullName: string;
  Gender: string;
  IssuingState: string;
  LastName: string;
  Line1: string;
  Line2: string;
  Line3: string;
  Nationality: string;
}- restrictionsCodeDescription
- endorsementsCodeDescription
- restrictionsCode
- specification
- weight
- issuerIdNum
- restrictionsNum
- cardRevisionDate
- complianceType
See the contributing guide to learn how to contribute to the repository and the development workflow.