Created
September 30, 2020 07:15
-
-
Save phuochau/3b7f2ff1ac0ea91346cc8d4826874965 to your computer and use it in GitHub Desktop.
Testing regula SDK
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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