0.2.0 • Published 6 years ago

rnkit-linkface-n v0.2.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

npm react-native MIT bitHound Score Downloads

人脸识别/活体检测-linkface for React Native.

Support me with a Follow

LinkFace Doc: http://devdoc.cloud.linkface.cn/

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 rnkit-linkface-n and link it manually (see below).

iOS

  • React Native < 0.29 (Using rnpm)

    rnpm install rnkit-linkface-n

  • React Native >= 0.29

    $npm install -S rnkit-linkface-n

    $react-native link rnkit-linkface-n

Manually

  1. Add node_modules/rnkit-linkface-n/ios/RNKitLinkFace.xcodeproj to your xcode project, usually under the Libraries group
  2. Add libRNKitLinkFace.a (from Products under RNKitLinkFace.xcodeproj) to build target's Linked Frameworks and Libraries list
  3. Add linkface framework to $(PROJECT_DIR)/Frameworks.

Android

  • React Native < 0.29 (Using rnpm)

    rnpm install rnkit-linkface-n

  • React Native >= 0.29

    $npm install -S rnkit-linkface-n

    $react-native link rnkit-linkface-n

Manually

  1. JDK 7+ is required
  2. Add the following snippet to your android/settings.gradle:

    include ':rnkit-linkface-n'
    project(':rnkit-linkface-n').projectDir = new File(rootProject.projectDir, '../node_modules/rnkit-linkface-n/android/app')
  3. Declare the dependency in your android/app/build.gradle

    dependencies {
        ...
        compile project(':rnkit-linkface-n')
    }
  4. Import import io.rnkit.linkface.LinkFacePackage; and register it in your MainActivity (or equivalent, RN >= 0.32 MainApplication.java):

    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.asList(
                new MainReactPackage(),
                new LinkFacePackage()
        );
    }

Finally, you're good to go, feel free to require rnkit-linkface-n in your JS files.

Have fun! :metal:

Basic Usage

Import library

import RNKitLinkFace from 'rnkit-linkface-n';

Start

try {
  const result = await RNKitLinkFace.start({
    "outType" : "video",
    "Complexity" : 1,
    "sequence" : [
      "BLINK",
      "MOUTH",
      "NOD",
      "YAW"
    ],
    "apiKey": "****",
    "apiSecret": "****",
  });
	console.log(result);
} catch (error) {
	console.log(`code: ${error.code}, message: ${error.message}`);
}

Start Input Params

KeyTypeDefaultDescription
Complexityint活体检测复杂度
sequencearray设置识别序列, 活体检测复杂度
outTypestring输出方案, 单图方案:singleImg, 多图方案:multiImg, 低质量视频方案:video, 高质量视频
方案:fullVideo
apiKeystring厂商提供的 apiKey
apiSecretstring厂商提供的 apiSecret

Start Output Params

KeyTypeDefaultDescription
encryTarDatastring活体识别二进制文件路径
arrSTImagearraystring返回的图片路径数组
lfVideoDatastring视频地址
Error
  • ArgsNull: 参数不能为空
  • BadJson: 解析Json指令失败!
  • InitFaild: 初始化失败
  • CameraError: 相机权限获取失败
  • FaceChanged: 采集失败,人脸变更
  • TimeOut: 超时
  • WillResignActive: 活体验证失败, 请保持前台运行
  • InternalError: 内部错误
  • Unknown: 未知错误
  • Cancel: 用户取消识别

clean 清理图片临时目录, 上传反馈完, 必须调用此方法

RNKitLinkFace.clean();

event MultiLivenessDidStart ( iOS only )

import { NativeEventEmitter } from 'react-native';
const nativeEventEmitter = new NativeEventEmitter(RNKitLinkFace);

const listener = nativeEventEmitter.addListener('MultiLivenessDidStart', () => {
	// 此方法可能会回调多次
});

// 使用完后记得移除
listener.remove();

event MultiLivenessDidFail ( iOS only )

import { NativeEventEmitter } from 'react-native';
const nativeEventEmitter = new NativeEventEmitter(RNKitLinkFace);

const listener = nativeEventEmitter.addListener('MultiLivenessDidFail', () => {
	// 此方法可能会回调多次
});

// 使用完后记得移除
listener.remove();

Contribution

Questions

Feel free to contact me or create an issue

made with ♥