tnrn-linkface

2.0.1 • Public • Published

npm react-native MIT 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 tn-linkface and link it manually (see below).

iOS

  • #### React Native < 0.29 (Using rnpm)

    rnpm install tnrn-linkface

  • #### React Native >= 0.29 $npm install -S tnrn-linkface

    $react-native link tnrn-linkface

Manually

  1. Add node_modules/tn-linkface/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 tnrn-linkface

  • #### React Native >= 0.29 $npm install -S tnrn-linkface

    $react-native link tnrn-linkface

Manually

  1. JDK 7+ is required
  2. Add the following snippet to your android/settings.gradle:
include ':tnrn-linkface'
project(':tnrn-linkface').projectDir = new File(rootProject.projectDir, '../node_modules/tnrn-linkface/android/app')
  1. Declare the dependency in your android/app/build.gradle
dependencies {
    ...
    compile project(':tnrn-linkface')
}
  1. 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 tnrn-linkface in your JS files.

Have fun! 🤘

Basic Usage

Import library

import RNKitLinkFace from 'tnrn-linkface';

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

Key Type Default Description
Complexity int 活体检测复杂度
sequence array 设置识别序列, 活体检测复杂度
outType string 输出方案, 单图方案:singleImg, 多图方案:multiImg, 低质量视频方案:video, 高质量视频
方案:fullVideo
apiKey string 厂商提供的 apiKey
apiSecret string 厂商提供的 apiSecret

Start Output Params

Key Type Default Description
encryTarData string 活体识别二进制文件路径
arrSTImage array[string] 返回的图片路径数组
lfVideoData string 视频地址
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 ♥

Package Sidebar

Install

npm i tnrn-linkface

Weekly Downloads

3

Version

2.0.1

License

MIT

Unpacked Size

6.46 MB

Total Files

42

Last publish

Collaborators

  • yanyulin
  • kangle
  • winterw
  • jingmeng
  • laopan