Skip to content

Instantly share code, notes, and snippets.

@phuochau
Created September 30, 2020 07:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phuochau/3b7f2ff1ac0ea91346cc8d4826874965 to your computer and use it in GitHub Desktop.
Save phuochau/3b7f2ff1ac0ea91346cc8d4826874965 to your computer and use it in GitHub Desktop.
Testing regula SDK
/* OCR Helper */
import {
NativeEventEmitter,
Platform
} from 'react-native'
import RNFetchBlob from 'rn-fetch-blob'
import Regula from '@regulaforensics/react-native-document-reader-api'
const EventManager = new NativeEventEmitter(Regula.RNRegulaDocumentReader)
const DocumentReader = Regula.DocumentReader
const Enum = DocumentReader.Enum
export const prepareDB = () => {
console.log('RegulaSDK -> Prepare database')
return new Promise((resolve, reject) => {
Regula.DocumentReader.prepareDatabase("Full", (respond) => {
resolve(respond)
},
(error) => {
reject(error)
});
})
}
export const updateDB = () => {
console.log('RegulaSDK -> Update database')
return new Promise((resolve, reject) => {
Regula.DocumentReader.runAutoUpdate("Full", (respond) => {
resolve(respond)
},
(error) => {
reject(error)
});
})
}
export const cancelUpdateDB = () => {
console.log('RegulaSDK -> Cancel update database')
return new Promise((resolve, reject) => {
Regula.DocumentReader.cancelDBUpdate((respond) => {
resolve(respond)
},
(error) => {
reject(error)
});
})
}
export const initializeReader = () => {
console.log('RegulaSDK -> Initialize reader')
const licPath = Platform.OS === 'ios' ? (RNFetchBlob.fs.dirs.MainBundleDir + "/regula.license") : RNFetchBlob.fs.asset("regula.license");
return new Promise((resolve, reject) => {
RNFetchBlob.fs.readFile(licPath, 'base64')
.then((res) => {
Regula.DocumentReader.initializeReader(res, resolve, reject);
}).catch(e => reject(e));
})
}
export const isDocumentIsReady = () => {
console.log('RegulaSDK -> isDocumentRead')
return new Promise((resolve, reject) => {
Regula.DocumentReader.getDocumentReaderIsReady((isReady) => {
console.log('RegulaSDK -> isDocumentRead -> isReady ->', isReady)
resolve(isReady)
}, error => reject(error));
})
}
export const startScanner = (onComplete) => {
console.log('RegulaSDK -> start scanner')
return new Promise((resolve, reject) => {
DocumentReader.getAvailableScenarios((jstring) => {
const scenariosTemp = JSON.parse(jstring)
const scenarios = []
for (const i in scenariosTemp) {
scenarios.push({
label: DocumentReader.Scenario.fromJson(typeof scenariosTemp[i] === "string" ? JSON.parse(scenariosTemp[i]) : scenariosTemp[i]).name,
value: i
})
}
EventManager.addListener('completionEvent', e => {
if (onComplete && e && e.msg) {
const data = JSON.parse(e.msg)
onComplete(DocumentReader.DocumentReaderCompletion.fromJson(data))
}
})
DocumentReader.setConfig({
functionality: {
// videoCaptureMotionControl: true,
captureMode: Regula.DocumentReader.Enum.CaptureMode.CAPTURE_VIDEO,
displayMetadata: true
// showCaptureButton: true
},
customization: {
showResultStatusMessages: true,
showStatusMessages: true
},
processParams: {
scenario: scenarios[0]['label'],
doRfid: false,
},
}, () => {
DocumentReader.showScanner(resolve, reject)
}, error => reject(error))
}, error => reject(error))
})
}
/* Testing code */
async testScanner() {
try {
await OCRHelper.prepareDB()
await OCRHelper.initializeReader()
const isReady = await OCRHelper.isDocumentIsReady()
console.log('OCR test -> isReady', isReady)
await OCRHelper.startScanner((result) => {
console.log('OCR test -> scanner text ->', result)
})
} catch (e) {
console.log('Error in OCR test', e)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment