partial void StartScanningButton_TouchUpInside(UIButton sender) { blinkIdRecognizer = new MBBlinkIdRecognizer(); // create a collection of recognizers that will be used for scanning var recognizerCollection = new MBRecognizerCollection(new MBRecognizer[] { blinkIdRecognizer }); // create a settings object for overlay that will be used. For ID it's best to use DocumentOverlayViewController // there are also other overlays available - check iOS documentation var blinkIdOverlaySettings = new MBBlinkIdOverlaySettings(); var blinkIdOverlay = new MBBlinkIdOverlayViewController(blinkIdOverlaySettings, recognizerCollection, customDelegate); // finally, create a recognizerRunnerViewController var recognizerRunnerViewController = MBViewControllerFactory.RecognizerRunnerViewControllerWithOverlayViewController(blinkIdOverlay); // in ObjC recognizerRunnerViewController would actually be of type UIViewController<MBRecognizerRunnerViewController>*, but this construct // is not supported in C#, so we need to use Runtime.GetINativeObject to cast obtained IMBReocognizerRunnerViewController into UIViewController // that can be presented this.PresentViewController(ObjCRuntime.Runtime.GetINativeObject <UIViewController>(recognizerRunnerViewController.Handle, false), true, null); }
public override void BlinkIdOverlayViewControllerDidTapClose(MBBlinkIdOverlayViewController BlinkIdOverlayViewController) { overlayVCDelegate.CloseButtonTapped(BlinkIdOverlayViewController); }
public override void BlinkIdOverlayViewControllerDidFinishScanning(MBBlinkIdOverlayViewController BlinkIdOverlayViewController, MBRecognizerResultState state) { overlayVCDelegate.ScanningFinished(BlinkIdOverlayViewController, state); }
public override void BlinkIdOverlayViewControllerDidFinishScanning(MBBlinkIdOverlayViewController blinkIdOverlayViewController, MBRecognizerResultState state) { // this method is called on background processing thread. The scanning will resume as soon // as this method ends, so in order to have unchanged results at the time of displaying UIAlertView // pause the scanning blinkIdOverlayViewController.RecognizerRunnerViewController.PauseScanning(); var title = "Result"; var message = ""; // each recognizer has Result property which contains recognized data after scanning has been finished // we can check ResultState property of the Result to see if the result contains scanned information if (me.blinkIdRecognizer.Result.ResultState == MBRecognizerResultState.Valid) { var blinkidResult = me.blinkIdRecognizer.Result; message += "BlinkID recognizer result:\n" + 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") + BuildResult(blinkidResult.DateOfBirth, "DateOfBirth") + BuildResult(blinkidResult.Age, "Age") + BuildResult(blinkidResult.DateOfIssue, "Date of issue") + BuildResult(blinkidResult.DateOfExpiry, "Date of expiry") + BuildResult(blinkidResult.DateOfExpiryPermanent, "Date of expiry permanent") + 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"); MBDriverLicenseDetailedInfo licenceInfo = blinkidResult.DriverLicenseDetailedInfo; if (licenceInfo != null) { message += BuildResult(licenceInfo.Restrictions, "Restrictions") + BuildResult(licenceInfo.Endorsements, "Endorsements") + BuildResult(licenceInfo.VehicleClass, "Vehicle class") + BuildResult(licenceInfo.Conditions, "Conditions"); } } UIApplication.SharedApplication.InvokeOnMainThread(delegate { UIAlertView alert = new UIAlertView() { Title = title, Message = message }; alert.AddButton("OK"); alert.Show(); // after alert dialog is dismissed, you can either resume scanning with // documentOverlayViewController.RecognizerRunnerViewController.ResumeScanningAndResetState(true) // or you can simply dismiss the RecognizerRunnerViewController alert.Dismissed += (sender, e) => me.DismissViewController(true, null); }); }
public override void BlinkIdOverlayViewControllerDidTapClose(MBBlinkIdOverlayViewController blinkIdOverlayViewController) { me.DismissViewController(true, null); }
public override void BlinkIdOverlayViewControllerDidFinishScanning(MBBlinkIdOverlayViewController blinkIdOverlayViewController, MBRecognizerResultState state) { // this method is called on background processing thread. The scanning will resume as soon // as this method ends, so in order to have unchanged results at the time of displaying UIAlertView // pause the scanning blinkIdOverlayViewController.RecognizerRunnerViewController.PauseScanning(); var title = "Result"; var message = ""; // each recognizer has Result property which contains recognized data after scanning has been finished // we can check ResultState property of the Result to see if the result contains scanned information if (me.blinkIdRecognizer.Result.ResultState == MBRecognizerResultState.Uncertain) { var blinkidResult = me.blinkIdRecognizer.Result; message += "BlinkID recognizer result:\n" + "FirstName: " + blinkidResult.FirstName + "\n" + "LastName: " + blinkidResult.LastName + "\n" + "Address: " + blinkidResult.Address + "\n" + "DocumentNumber: " + blinkidResult.DocumentNumber + "\n" + "Sex: " + blinkidResult.Sex + "\n"; var dob = blinkidResult.DateOfBirth; if (dob != null) { message += "DateOfBirth: " + dob.Day + "." + dob.Month + "." + dob.Year + ".\n"; } var doi = blinkidResult.DateOfIssue; if (doi != null) { message += "DateOfIssue: " + doi.Day + "." + doi.Month + "." + doi.Year + ".\n"; } var doe = blinkidResult.DateOfExpiry; if (doe != null) { message += "DateOfExpiry: " + doe.Day + "." + doe.Month + "." + doe.Year + ".\n"; } } UIApplication.SharedApplication.InvokeOnMainThread(delegate { UIAlertView alert = new UIAlertView() { Title = title, Message = message }; alert.AddButton("OK"); alert.Show(); // after alert dialog is dismissed, you can either resume scanning with // documentOverlayViewController.RecognizerRunnerViewController.ResumeScanningAndResetState(true) // or you can simply dismiss the RecognizerRunnerViewController alert.Dismissed += (sender, e) => me.DismissViewController(true, null); }); }