首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microblink :扫描身份证正反面

Microblink :扫描身份证正反面
EN

Stack Overflow用户
提问于 2020-02-12 18:51:42
回答 2查看 700关注 0票数 1

我正在尝试使用mircoblink扫描国家卡的两面,根据他们的文档扫描两面你必须使用控制器的MBDocumentVerificationOverlayViewController和识别器的MBBlinkIdCombinedRecognizer。但只有我的正面扫描效果很好。我正在使用演示序列密钥,我不知道它是否与我的序列密钥相关。

下面是我的代码:

代码语言:javascript
复制
    /** 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)

这是我的委托代码:

代码语言:javascript
复制
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中看到了响应

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-12 21:29:32

您使用的是什么版本的SDK?

在5.2版本中,我们增加了对德语ID正面和背面的扫描。

您可以在此处下载最新版本:https://github.com/BlinkID/blinkid-ios/releases

您现在可以测试它并让我们知道它是否有效吗?

米兰

票数 2
EN

Stack Overflow用户

发布于 2020-02-12 19:08:46

我上一次使用microblink是在一年多以前,但如果我没记错的话,documentVerificationOverlayViewControllerDidFinishScanningFirstSide只适用于受支持的身份证。

如果你正在扫描一个来自其他国家的身份证,你需要自己来实现。

例如:

代码语言:javascript
复制
func documentVerificationOverlayViewControllerDidFinishScanning(_ documentVerificationOverlayViewController: MBDocumentVerificationOverlayViewController, state: MBRecognizerResultState) {
    if step == .first {
        // Present another ViewController for the back
        showBackScanner()
    } else {
        processData()
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60186678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档