npm install react-native-regula-document-reader --save
react-native link react-native-regula-document-reader
- Add to Podfile:
pod 'DocumentReader', '~> 4.0'
pod 'DocumentReaderFull', '~> 4.0'
- Generate license for your application bundle ID: https://licensing.regulaforensics.com/. Convert it to a base64 string, e.g.:
fs.readFileSync('./path/to/regula.license').toString('base64')
- Download database from: https://licensing.regulaforensics.com/Customer/Account/Databases. Add it to the iOS project (db.dat).
- Go to your project Targets -> Builds Settings -> Always Embed Swift Standard Libraries - set to Yes
- Go to your project Targets -> Info -> Add new key Privacy - Camera Usage Description = “Your message that will be appeared during ask to run camera”.
- Open your top level build.gradle (android/build.gradle)
- add the block below:
allprojects {
repositories {
maven {
url "http://maven.regulaforensics.com/RegulaDocumentReader"
}
}
}
- In your app level build.gradle:
- increate 'minSdkVersion' to 19 (if it's below)
- Open AndroidManifest.xml file and set:
android:allowBackup="true"
mkdir -p android/app/src/main/res/raw/
- Copy
regula.license
to that folder - This project comes bundled with a db.dat, but if you want to use the latest, download it from Regula and copy it to
node_modules/react-native-regula-document-reader/android/src/main/assets/Regula/
import RegulaDocumentReader, { Scenario } from 'react-native-regula-document-reader';
// do this early on to save some time
await RegulaDocumentReader.initialize({
licenseKey: base64LicenseKeyYouCreatedAbove
})
// initialize on the fly, and scan
// set options as you like
// see Regula docs for what they mean
await RegulaDocumentReader.scan({
functionality: {
showTorchButton: true,
showCloseButton: true,
showCaptureButton: true,
showCaptureButtonAfterDelay: true,
showSkipNextPageButton: true,
videoCaptureMotionControl: true,
showChangeFrameButton: true,
},
customization: {
showHintMessages: true,
showHelpAnimation: true,
},
processParams: {
scenario: Scenario.mrz,
multipageProcessing: false,
dateFormat: 'dd-mm-yyyy',
},
})