Microblink: сканирование обеих сторон удостоверения личности - PullRequest
1 голос
/ 12 февраля 2020

Я пытаюсь отсканировать обе стороны национальной карты с помощью mircoblink, основываясь на их документации для сканирования обеих сторон, вы должны использовать MBDocumentVerificationOverlayViewController для контроллера и MBBlinkIdCombinedRecognizer для распознавателя. но хорошо работает только сканирование моей лицевой стороны. Я использую демонстрационный серийный ключ, я не знаю, связан ли он с моим серийным ключом или нет.

вот мой код:

    /** Create BlinkID recognizer */
    blinkIdRecognizer = MBBlinkIdCombinedRecognizer()

    /** Create BlinkID settings */
    let settings : MBDocumentVerificationOverlaySettings = MBDocumentVerificationOverlaySettings()

    /** Crate recognizer collection */
    let recognizerCollection : MBRecognizerCollection = MBRecognizerCollection(recognizers: [blinkIdRecognizer!])

    /** Create your overlay view controller */
    let documentOverlayViewController : MBDocumentVerificationOverlayViewController = MBDocumentVerificationOverlayViewController(settings: settings, recognizerCollection: recognizerCollection, delegate: self)

    /** Create recognizer view controller with wanted overlay view controller */
    let recognizerRunneViewController : UIViewController = MBViewControllerFactory.recognizerRunnerViewController(withOverlayViewController: documentOverlayViewController)

    /** Present the recognizer runner view controller. You can use other presentation methods as well (instead of presentViewController) */
    present(recognizerRunneViewController, animated: true, completion: nil)

Это мой код делегата:

extension MyVC: MBDocumentVerificationOverlayViewControllerDelegate {

    func documentVerificationOverlayViewControllerDidFinishScanningFirstSide(_ documentVerificationOverlayViewController: MBDocumentVerificationOverlayViewController) {
        print("First Side Scanned")
    }

    func documentVerificationOverlayViewControllerDidFinishScanning(_ documentVerificationOverlayViewController: MBDocumentVerificationOverlayViewController, state: MBRecognizerResultState) {

        if (self.blinkIdRecognizer?.combinedResult.resultState == MBRecognizerResultState.valid) {
            guard let result = blinkIdRecognizer?.combinedResult else {
                return
            }

            DispatchQueue.main.async {

                if self.blinkIdRecognizer?.combinedResult.scanningFirstSideDone == true {

                } else {
                    documentVerificationOverlayViewController.dismiss(animated: true, completion: nil)
                }

            }
        }
    }

    func documentVerificationOverlayViewControllerDidTapClose(_ documentVerificationOverlayViewController: MBDocumentVerificationOverlayViewController) {
        self.dismiss(animated: true, completion: nil)
    }

}

И при сканировании делегата первой стороны никогда не вызывают, но я вижу ответ в DidFinish

спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Какую версию SDK вы используете?

В версии 5.2 мы добавили сканирование передней и задней части немецкого идентификатора.

Вы можете скачать последнюю версию здесь : https://github.com/BlinkID/blinkid-ios/releases

Можете ли вы проверить это сейчас и сообщить нам, если это сработало?

Милан

1 голос
/ 12 февраля 2020

В последний раз я работал с microblink более года go, но, если я правильно помню, documentVerificationOverlayViewControllerDidFinishScanningFirstSide доступен только для поддерживаемых идентификационных карт.

Если вы сканируете идентификационную карту из другой страны вам нужно реализовать это самостоятельно.

Например:

func documentVerificationOverlayViewControllerDidFinishScanning(_ documentVerificationOverlayViewController: MBDocumentVerificationOverlayViewController, state: MBRecognizerResultState) {
    if step == .first {
        // Present another ViewController for the back
        showBackScanner()
    } else {
        processData()
    }
}
...