react-native-bdface

baidu Face AI

Usage no npm install needed!

<script type="module">
  import reactNativeBdface from 'https://cdn.skypack.dev/react-native-bdface';
</script>

README

react-native-baidu-face

Getting started

$ npm install react-native-baidu-face --save

Mostly automatic installation

$ react-native link react-native-baidu-face

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-baidu-face and add RNBaiduFace.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNBaiduFace.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<
  5. 把官方下载的sdk 中的bundle 和 framework 以及 license 文件添加进项目
  6. 在 AppDelegate.m 中添加以下代码
    #import <RNBaiduFace.h>
    
    #ifndef FaceParameterConfig_h
    #define FaceParameterConfig_h
    
    // 如果在后台选择自动配置授权信息,下面的三个LICENSE相关的参数已经配置好了
    // 只需配置FACE_API_KEY和FACE_SECRET_KEY两个参数即可
    
    // 人脸license文件名
    #define FACE_LICENSE_NAME    @"idl-license"
    
    // 人脸license后缀
    #define FACE_LICENSE_SUFFIX  @"face-ios"
    
    // (您申请的应用名称(appname)+「-face-ios」后缀,如申请的应用名称(appname)为test123,则此处填写test123-face-ios)
    // 在后台 -> 产品服务 -> 人脸识别 -> 客户端SDK管理查看,如果没有的话就新建一个
    #define FACE_LICENSE_ID        @"SuqianYanglao-face-ios"
    
    #endif
    
    [[RNBaiduFace shareInstance] initBDFaceSdkAndViewController:rootViewController Name:FACE_LICENSE_NAME Type:FACE_LICENSE_SUFFIX LicenseId:FACE_LICENSE_ID];
    

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNBaiduFacePackage; to the imports at the top of the file
  • Add new RNBaiduFacePackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:

    include ':react-native-bdface'
    project(':react-native-bdface').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-bdface/android')
    
    include ':faceplatform-ui'
    include ':faceplatform'
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:

      implementation project(':react-native-bdface')
      implementation project(path:':faceplatform-ui')
    
  3. 按照官方文档把对应的faceplatform 和faceplatform-ui 拷贝到安卓的根目录下

  4. 按照官方文档在app/src/main 下新建 assets 目录,并把相应的idl-license 文件放进去

  5. 项目的mainApplication 中 添加以下代码 initSdk 中的第二参数 是licenseId 第三参数为文件名

            @Override
            protected List<ReactPackage> getPackages() {
                return Arrays.<ReactPackage>asList(
                        new RNBaiduFacePackage())
                        }
    @Override
    public void onCreate() {
        super.onCreate();
        SoLoader.init(this, /* native exopackage */ false);
        RNBaiduFaceModule.initSdk(this,"SuqianYanglao-face-android","idl-license.face-android");
    }
    
    

Usage

import RNBaiduFace from 'react-native-baidu-face';

// TODO: What to do with the module?

        RNBaiduFace.livenessWithCallBack((error,data)=>{
            console.log('image data back ',data);
        })