我正在尝试使用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中看到了响应
谢谢你的帮助
发布于 2020-02-12 21:29:32
您使用的是什么版本的SDK?
在5.2版本中,我们增加了对德语ID正面和背面的扫描。
您可以在此处下载最新版本:https://github.com/BlinkID/blinkid-ios/releases
您现在可以测试它并让我们知道它是否有效吗?
米兰
发布于 2020-02-12 19:08:46
我上一次使用microblink是在一年多以前,但如果我没记错的话,documentVerificationOverlayViewControllerDidFinishScanningFirstSide只适用于受支持的身份证。
如果你正在扫描一个来自其他国家的身份证,你需要自己来实现。
例如:
func documentVerificationOverlayViewControllerDidFinishScanning(_ documentVerificationOverlayViewController: MBDocumentVerificationOverlayViewController, state: MBRecognizerResultState) {
if step == .first {
// Present another ViewController for the back
showBackScanner()
} else {
processData()
}
}https://stackoverflow.com/questions/60186678
复制相似问题