tnrn-excard v3.0.0
易道博识-图像识别 for React Native.
Getting Started
First, cd to your RN project directory, and install RNMK through rnpm . If you don't have rnpm, you can install RNMK from npm with the command npm i -S tnrn-excard and link it manually (see below).
iOS
React Native < 0.29 (Using rnpm)
rnpm install tnrn-excardReact Native >= 0.29
$npm install -S tnrn-excard$react-native link tnrn-excardNotice
在
Build Settings->Search Paths->Framework Search Paths中加入路径$(SRCROOT)/../node_modules/tnrn-excard/ios/Framework在
Build Settings->Link->Other Linker Flags中加入-framework "ExCardSDK"和-framework "ExBankCardSDK"最后还需要手动导入
bundle资源文件:在主工程中找到
Libraries下面的RNKitExcard,然后找到Framework文件夹,鼠标右键Show in Finder,然后将里面的两个.bundle文件拖入主工程中,切记,一定要 勾选add to targets,不需要勾选copy items if meed
Android
React Native < 0.29 (Using rnpm)
rnpm install tnrn-excardReact Native >= 0.29
$npm install -S tnrn-excard$react-native link tnrn-excard
Manually
- JDK 7+ is required
Add the following snippet to your
android/settings.gradle:include ':tnrn-excard' project(':tnrn-excard').projectDir = new File(rootProject.projectDir, '../node_modules/tnrn-excard/android/app')Declare the dependency in your
android/app/build.gradledependencies { ... compile project(':tnrn-excard') }Import
import io.tnrn.excard.EXOCRPackage;and register it in yourMainActivity(or equivalent, RN >= 0.32 MainApplication.java):@Override protected List<ReactPackage> getPackages() { return Arrays.asList( new MainReactPackage(), new EXOCRPackage() ); }Add Module
ExBankCardSDKAndExCardSDKIn Your Main Project.
Finally, you're good to go, feel free to require tnrn-excard in your JS files.
Have fun! :metal:
Basic Usage
Import library
import RNExcard from 'tnrn-excard';Init
RNExcard.config({
DisplayLogo: false
....
})Init Params
| Key | Type | Default | Description |
|---|---|---|---|
| OrientationMask | string | 'MaskAll' | 方向设置,设置扫描页面支持的识别方向 |
| ByPresent | BOOL | NO | 扫描页面调用方式设置,是否以present方式调用,默认为NO,YES-以present方式调用,NO-以sdk默认方式调用(push或present) |
| NumberOfSpace | BOOL | YES | 结果设置,银行卡号是否包含空格 |
| DisplayLogo | BOOL | YES | 是否显示logo |
| EnablePhotoRec | BOOL | YES | EnablePhotoRec |
| FrameColor | int | 扫描框颜色, 必须与FrameAlpha共同设置 | |
| FrameAlpha | float | 扫描框透明度, 必须与FrameColor共同设置 | |
| ScanTextColor | int | 扫描字体颜色 | |
| IDCardScanNormalTextColor | int | 正常状态扫描字体颜色 (身份证) | |
| IDCardScanErrorTextColor | int | 错误状态扫描字体颜色 (身份证) | |
| BankScanTips | string | 银行卡扫描提示文字 | |
| DRCardScanTips | string | 驾驶证扫描提示文字 | |
| VECardScanTips | string | 行驶证扫描提示文字 | |
| BankScanTips | string | 银行卡扫描提示文字 | |
| IDCardScanFrontNormalTips | string | 身份证正常状态正面扫描提示文字 | |
| IDCardScanFrontErrorTips | string | 身份证错误状态正面扫描提示文字 | |
| IDCardScanBackNormalTips | string | 身份证正常状态背面扫描提示文字 | |
| IDCardScanBackErrorTips | string | 身份证错误状态背面扫描提示文字 | |
| fontName | string | 扫描提示文字字体名称 | |
| ScanTipsFontSize | float | 扫描提示文字字体大小 | |
| IDCardNormalFontName | string | 正常状态扫描提示文字字体名称 | |
| IDCardNormalFontSize | float | 正常状态扫描提示文字字体大小 | |
| IDCardErrorFontName | string | 错误状态扫描提示文字字体名称 | |
| IDCardErrorFontSize | float | 错误状态扫描提示文字字体大小 | |
| quality | float | 图片清晰度, 范围(0-1) |
OrientationMask
- Portrait
- LandscapeLeft
- LandscapeRight
- PortraitUpsideDown
- Landscape
- MaskAll
- AllButUpsideDown
一、银行卡识别
1. 使用摄像头、相册识别
try {
const result = await RNExcard.recoBankFromStream();
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}2. 使用远程或本地图片识别
try {
const imagePath = '...';
const result = await RNExcard.recoBankFromStillImage(imagePath);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}返回值
| Key | Type | Default | Description |
|---|---|---|---|
| bankName | string | 银行名称 | |
| cardName | string | 卡名称 | |
| cardType | string | 卡类型 | |
| cardNum | string | 卡号 | |
| validDate | string | 有限期 | |
| fullImgPath | string | 银行卡全图 | |
| cardNumImgPath | string | 银行卡号截图 |
二、驾驶证识别
1. 使用摄像头、相册识别
try {
const result = await RNExcard.recoDRCardFromStream();
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}2. 使用远程或本地图片识别
try {
const imagePath = '...';
const result = await RNExcard.recoDRCardFromStillImage(imagePath);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}返回值
| Key | Type | Default | Description |
|---|---|---|---|
| name | string | 姓名 | |
| sex | string | 性别 | |
| nation | string | 国籍 | |
| cardId | string | 身份证号码 | |
| address | string | 住址 | |
| birth | string | 出生日期 | |
| issueDate | string | 初次领证时间 | |
| driveType | string | 准驾车型 | |
| validDate | string | 有效期至日期 | |
| fullImgPath | string | 驾驶证全图 |
三、行驶证识别
1. 使用摄像头、相册识别
try {
const result = await RNExcard.recoVECardFromStream();
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}2. 使用远程或本地图片识别
try {
const imagePath = '...';
const result = await RNExcard.recoVECardFromStillImage(imagePath);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}返回值
| Key | Type | Default | Description |
|---|---|---|---|
| plateNo | string | 号牌号码 | |
| vehicleType | string | 车辆类型 | |
| owner | string | 所有人 | |
| address | string | 住址 | |
| model | string | 品牌型号 | |
| useCharacter | string | 使用性质 | |
| engineNo | string | 发动机号 | |
| VIN | string | 车辆识别代码 | |
| registerDate | string | 注册日期 | |
| issueDate | string | 发证日期 | |
| fullImgPath | string | 行驶证全图 |
四、身份证识别
1. 使用摄像头、相册识别
try {
const bFront = true // 身份证方向,true-正面,false-背面
const result = await RNExcard.recoIDCardFromStreamWithSide(bFront);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}2. 使用远程或本地图片识别
try {
const imagePath = '...';
const result = await RNExcard.recoIDCardFromStillImage(imagePath);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}返回值
| Key | Type | Default | Description |
|---|---|---|---|
| type | int | 1:正面 2:反面 | |
| name | string | 姓名 | |
| gender | string | 性别 | |
| nation | string | 名族 | |
| birth | string | 出生 | |
| address | string | 地址 | |
| code | string | 身份证 | |
| issue | string | 签发机关 | |
| valid | string | 有效期 | |
| frontShadow | int | 1:正面图像有遮挡 0:正面图像无遮挡 | |
| backShadow | int | 1:背面图像有遮挡 0:背面图像无遮挡 | |
| faceImgPath | string | 人脸截图 | |
| frontFullImgPath | string | 身份证正面全图 | |
| backFullImgPath | string | 身份证背面全图 |
五、常量
const sdkVersion = RNExcard.sdkVersion;
const kernelVersion = RNExcard.kernelVersion;| Key | Type | Default | Description |
|---|---|---|---|
| sdkVersion | string | sdk版本号 | |
| kernelVersion | string | 识别核心版本号 |
六、clean 清理图片临时目录
try {
const result = await RNExcard.clean();
} catch (error) {
console.log(error)
}Contribution
- @simamn The main author.
Questions
Feel free to contact me or create an issue
made with ♥