
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
rnkit-excard
Advanced tools
易道博识-图像识别 for React Native.
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 rnkit-excard and link it manually (see below).
rnpm install rnkit-excard
$npm install -S rnkit-excard
$react-native link rnkit-excard
node_modules/rnkit-excard/ios/RNKitExcard.xcodeproj to your xcode project, usually under the Libraries grouplibRNKitExcard.a (from Products under RNKitExcard.xcodeproj) to build target's Linked Frameworks and Libraries list$(PROJECT_DIR)/Frameworks.rnpm install rnkit-excard
$npm install -S rnkit-excard
$react-native link rnkit-excard
android/settings.gradle:include ':rnkit-excard'
project(':rnkit-excard').projectDir = new File(rootProject.projectDir, '../node_modules/rnkit-excard/android/app')
android/app/build.gradledependencies {
...
compile project(':rnkit-excard')
}
import io.rnkit.excard.EXOCRPackage; and register it in your MainActivity (or equivalent, RN >= 0.32 MainApplication.java):@Override
protected List<ReactPackage> getPackages() {
return Arrays.asList(
new MainReactPackage(),
new EXOCRPackage()
);
}
ExBankCardSDK And ExCardSDK In Your Main Project.Finally, you're good to go, feel free to require rnkit-excard in your JS files.
Have fun! :metal:
Import library
import RNKitExcard from 'rnkit-excard';
RNKitExcard.config({
DisplayLogo: false
....
})
| 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) |
try {
const result = await RNKitExcard.recoBankFromStream();
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}
try {
const imagePath = '...';
const result = await RNKitExcard.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 | 银行卡号截图 |
try {
const result = await RNKitExcard.recoDRCardFromStream();
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}
try {
const imagePath = '...';
const result = await RNKitExcard.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 | 驾驶证全图 |
try {
const result = await RNKitExcard.recoVECardFromStream();
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}
try {
const imagePath = '...';
const result = await RNKitExcard.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 | 行驶证全图 |
try {
const bFront = true // 身份证方向,true-正面,false-背面
const result = await RNKitExcard.recoIDCardFromStreamWithSide(bFront);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}
try {
const imagePath = '...';
const result = await RNKitExcard.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 = RNKitExcard.sdkVersion;
const kernelVersion = RNKitExcard.kernelVersion;
| Key | Type | Default | Description |
|---|---|---|---|
| sdkVersion | string | sdk版本号 | |
| kernelVersion | string | 识别核心版本号 |
try {
const result = await RNKitExcard.clean();
} catch (error) {
console.log(error)
}
Feel free to contact me or create an issue
made with ♥
FAQs
易道博识-图像识别 for ReactNative
We found that rnkit-excard demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.