Захват документов
Захват документов, удостоверяющих личность. SDK отображает рамку, помогающую пользователю расположить документ; после позиционирования пользователь нажимает кнопку для съёмки фото.
SDK не выполняет никакой проверки того, что захватывается.
| Рамка | Описание |
|---|---|
DocumentEnums.CPF | Захват CPF |
DocumentEnums.CNH | Захват открытого CNH |
DocumentEnums.cnhFrente | Захват лицевой стороны CNH |
DocumentEnums.cnhVerso | Захват обратной стороны CNH |
DocumentEnums.RG | Захват открыт ого RG |
DocumentEnums.rgFrente | Захват лицевой стороны RG |
DocumentEnums.rgVerso | Захват обратной стороны RG |
DocumentEnums.none | Универсальная прямоугольная рамка для любого другого документа |
Если вам нужно захватить документ, для которого нет специальной рамки (например, RNE), используйте DocumentEnums.none — универсальная прямоугольная рамка, подходящая для любого захвата.
Полный список поддерживаемых типов документов см. в разделе Справочник API > Перечисления.
Шаг 1 — Реализуйте AcessoBioManagerDelegate
AcessoBioManagerDelegate обрабатывает обратные вызовы жизненного цикла SDK. Реализуйте четыре обязательных метода:
| Метод | Когда вызывается |
|---|---|
onErrorAcessoBioManager(error) | Произошла ошибка во время работы SDK |
onUserClosedCameraManually() | Пользователь вручную закрыл камеру |
onSystemClosedCameraTimeoutSession() | Достигнут 40-секундный лимит сеанса |
onSystemChangedTypeCameraTimeoutFaceInference() | Лицо не обнаружено в течение 13 секунд — переключается на ручной захват |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!
override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}
func onErrorAcessoBioManager(_ error: ErrorBio!) { }
func onUserClosedCameraManually() { }
func onSystemClosedCameraTimeoutSession() { }
func onSystemChangedTypeCameraTimeoutFaceInference() { }
}
@implementation ViewController: UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error { }
- (void)onSystemChangedTypeCameraTimeoutFaceInference { }
- (void)onSystemClosedCameraTimeoutSession { }
- (void)onUserClosedCameraManually { }
@end
Все четыре метода делегата, перечисленные выше, должны быть созданы в вашем проекте (даже без какой-либо логики). В противном случае проект не скомпилируется успешно.
Шаг 2 — Реализуйте DocumentCameraDelegate и AcessoBioDocumentDelegate
Эти делегаты обрабатывают обратные вызовы результата захвата документа:
| Метод | Описание |
|---|---|
onSuccessDocument(result) | Захват выполнен успешно — возвращает DocumentResult с base64 (предпросмотр) и encrypted (JWT для API) |
onErrorDocument(errorBio) | Захват не выполнен — возвращает ErrorBio с кодом и описанием |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate {
func onSuccessDocument(_ result: DocumentResult!) { }
func onErrorDocument(_ errorBio: ErrorBio!) { }
}
// .h
@interface ViewController: UIViewController <AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate> {
AcessoBioManager *unicoCheck;
}
// .m
- (void)onSuccessDocument:(DocumentResult *)result {
NSLog(@"%@", result.base64);
}
- (void)onErrorDocument:(ErrorBio *)errorBio { }
Шаг 3 — Вызовите prepareDocumentCamera и openDocument
Вызовите prepareDocumentCamera, передав конфигурацию SDK. Когда камера будет готова, сработает onCameraReadyDocument с AcessoBioCameraOpenerDelegate — откройте камеру с помощью openDocument() и передайте желаемый DocumentEnums:
onCameraReadyDocument(cameraOpener)— камера готова; вызовитеopenDocument(.CNH, delegate: self).onCameraFailedDocument(message)— подготовка камеры завершилась ошибкой (ErrorPrepareявляется расширениемErrorBio).
- Swift
- Objective-C
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareDocumentCamera(self, config: YourUnicoConfigClass())
}
func onCameraReadyDocument(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.openDocument(DocumentEnums.CNH, delegate: self)
}
func onCameraFailedDocument(_ message: ErrorPrepare!) { }
- (IBAction)openCamera:(UIButton *)sender {
[[unicoCheck build] prepareDocumentCamera:self config:[YourUnicoConfigClass new]];
}
- (void)onCameraReadyDocument:(id)cameraOpener {
[cameraOpener openDocument:DocumentCNH delegate:self];
}
- (void)onCameraFailedDocument:(ErrorPrepare *)message { }
Полную информацию об обработке результата см. в разделе Получение результата.