FacePlugin.java 3.04 KB
Newer Older
李晓兵's avatar
李晓兵 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
package com.hand.hrms.face;


import android.widget.Toast;

import com.hand.face.myinterface.NotifyMessage;
import com.hand.face.ui.FaceCompareActivity;
import com.hand.face.ui.FaceSerchActivity;
import com.hand.face.utils.NotifyMessageManager;
import com.hand.face.utils.Utils;
import com.youtu.sign.Base64Util;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * Created by USER on 2016/12/13.
 */
public class FacePlugin extends CordovaPlugin implements NotifyMessage {
    private NotifyMessageManager notify;
    private CallbackContext mCallbackContext;
    //初始化插件
    @Override
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize(cordova, webView);
        notify = NotifyMessageManager.getInstance();
        notify.setNotifyMessage(this);
    }

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        mCallbackContext = callbackContext;
        if("faceDetect".equals(action)){
            if(args!=null && args.length()>0){
                JSONObject obj = args.getJSONObject(0);
                if(obj!=null){
                    if(obj.has("direction")){
                        String value = obj.getString("direction");
                        if(value!=null && !value.isEmpty()){
                            if("front".equals(value)){
                                FaceCompareActivity.actionStart(cordova.getActivity());
                            }else if("back".equals(value)){
                                FaceSerchActivity.actionStart(cordova.getActivity());
                            }else{
                                FaceCompareActivity.actionStart(cordova.getActivity());
                            }
                        }else{
                            FaceCompareActivity.actionStart(cordova.getActivity());
                        }
                    }else{
                        FaceCompareActivity.actionStart(cordova.getActivity());
                    }
                }else{
                    FaceCompareActivity.actionStart(cordova.getActivity());
                }
            }else{
                FaceCompareActivity.actionStart(cordova.getActivity());
            }
            return true;
        }else if("getLocalImage".equals(action)){
            String imgPath = args.getString(0);
            byte[] bytes = Utils.File2byte(imgPath);
            String path = Base64Util.encode(bytes);
            mCallbackContext.success(path);
            return true;
        }
        return super.execute(action, args, callbackContext);
    }

    @Override
    public void sendMessage(String msg) {
        try {
            JSONObject msgObj = new JSONObject(msg);
            mCallbackContext.success(msgObj);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}