0

我在 react native ios app 中实现了 blinkid-react-native。blinkid-react-native 将使我能够扫描 id 并验证其上的数据。当我运行我的代码时,我得到的 json 只显示了地址。

由于我无法打开相机以扫描 ios 模拟器中的 id。我部署了应用程序来测试飞行。我需要调试并查看 javascript console.logs。我无法从试飞中做到这一点?

我不确定如何调试问题?由于我无法在 ios 模拟器上打开相机来运行 BlinkId 并通过 console.logs。

这是我得到的json

在此处输入图像描述

这是 BlinkId 代码

export const scanId = async () => {
  console.log('BlinkId*****************');
  const licenseKey = Platform.select({
    ios:
      '**********',
    android:
      '**********',
  });

  BlinkIDReactNative.SuccessFrameGrabberRecognizer(mrtdRecognizer);

  var blinkIdCombinedRecognizer = new BlinkIDReactNative.BlinkIdCombinedRecognizer();
  blinkIdCombinedRecognizer.returnFullDocumentImage = true;
  blinkIdCombinedRecognizer.returnFaceImage = true;

  const scanningResults = await BlinkIDReactNative.BlinkID.scanWithCamera(
    new BlinkIDReactNative.BlinkIdOverlaySettings(),
    new BlinkIDReactNative.RecognizerCollection([
      blinkIdCombinedRecognizer /*, mrtdSuccessFrameGrabber*/,
    ]),
    licenseKey,
  )
    .then((result) => handleResult(result))
    .catch((e) => e);
  return scanningResults;
};
console.log('BlinkId+scanningResults*****************');
console.log(this.scanningResults);
console.log('BlinkId+result1*****************');
console.log(this.result);
const handleResult = (result) => {
  function buildResult(result, key) {
    if (result && result != -1) {
      return key + ': ' + result + '\n';
    }
    return '';
  }
  console.log('BlinkId+result2*****************');
  console.log(result);
  function buildDateResult(result, key) {
    if (result) {
      return (
        key +
        ': ' +
        result.day +
        '.' +
        result.month +
        '.' +
        result.year +
        '.' +
        '\n'
      );
    }
    return '';
  }

  var localState = {
    showFrontImageDocument: false,
    resultFrontImageDocument: '',
    showBackImageDocument: false,
    resultBackImageDocument: '',
    resultImageFace: '',
    results: '',
    showSuccessFrame: false,
    successFrame: '',
  };
  console.log('BlinkId+result3*****************');
  console.log(result);
  if (result instanceof BlinkIDReactNative.BlinkIdCombinedRecognizerResult) {
    let blinkIdResult = result;
    console.log('BlinkId+blinkIdResult*****************');
    console.log(blinkIdResult);
    let resultString =
      buildResult(blinkIdResult.firstName, 'First name') +
      buildResult(blinkIdResult.lastName, 'Last name') +
      buildResult(blinkIdResult.fullName, 'Full name') +
      buildResult(blinkIdResult.localizedName, 'Localized name') +
      buildResult(
        blinkIdResult.additionalNameInformation,
        'Additional name info',
      ) +
      buildResult(blinkIdResult.address, 'Address') +
      buildResult(
        blinkIdResult.additionalAddressInformation,
        'Additional address info',
      ) +
      buildResult(blinkIdResult.documentNumber, 'Document number') +
      buildResult(
        blinkIdResult.documentAdditionalNumber,
        'Additional document number',
      ) +
      buildResult(blinkIdResult.sex, 'Sex') +
      buildResult(blinkIdResult.issuingAuthority, 'Issuing authority') +
      buildResult(blinkIdResult.nationality, 'Nationality') +
      buildDateResult(blinkIdResult.dateOfBirth, 'Date of birth') +
      buildResult(blinkIdResult.age, 'Age') +
      buildDateResult(blinkIdResult.dateOfIssue, 'Date of issue') +
      buildDateResult(blinkIdResult.dateOfExpiry, 'Date of expiry') +
      buildResult(
        blinkIdResult.dateOfExpiryPermanent,
        'Date of expiry permanent',
      ) +
      buildResult(blinkIdResult.expired, 'Expired') +
      buildResult(blinkIdResult.maritalStatus, 'Martial status') +
      buildResult(blinkIdResult.personalIdNumber, 'Personal id number') +
      buildResult(blinkIdResult.profession, 'Profession') +
      buildResult(blinkIdResult.race, 'Race') +
      buildResult(blinkIdResult.religion, 'Religion') +
      buildResult(blinkIdResult.residentialStatus, 'Residential status') +
      buildResult(blinkIdResult.processingStatus, 'Processing status') +
      buildResult(blinkIdResult.recognitionMode, 'Recognition mode');
    let licenceInfo = blinkIdResult.driverLicenseDetailedInfo;
    if (licenceInfo) {
      resultString +=
        buildResult(licenceInfo.restrictions, 'Restrictions') +
        buildResult(licenceInfo.endorsements, 'Endorsements') +
        buildResult(licenceInfo.vehicleClass, 'Vehicle class') +
        buildResult(licenceInfo.conditions, 'Conditions');
    }

    // there are other fields to extract
    localState.results += resultString;

    // Document image is returned as Base64 encoded JPEG
    if (blinkIdResult.fullDocumentFrontImage) {
      localState.showFrontImageDocument = true;
      localState.resultFrontImageDocument =
        'data:image/jpg;base64,' + blinkIdResult.fullDocumentFrontImage;
    }
    if (blinkIdResult.fullDocumentBackImage) {
      localState.showBackImageDocument = true;
      localState.resultBackImageDocument =
        'data:image/jpg;base64,' + blinkIdResult.fullDocumentBackImage;
    }
    // Face image is returned as Base64 encoded JPEG
    if (blinkIdResult.faceImage) {
      localState.showImageFace = true;
      localState.resultImageFace =
        'data:image/jpg;base64,' + blinkIdResult.faceImage;
    }
  } else {
    throw JSON.stringify(result);
  }
  console.log('BlinkId+localState*****************');
  console.log(localState);
  return localState;
};

4

0 回答 0