Перейти к основному содержимому

Захват документов

Захват документов, удостоверяющих личность. 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 секунд — переключается на ручной захват
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() { }
}
Обязательные методы делегата

Все четыре метода делегата, перечисленные выше, должны быть созданы в вашем проекте (даже без какой-либо логики). В противном случае проект не скомпилируется успешно.

Шаг 2 — Реализуйте DocumentCameraDelegate и AcessoBioDocumentDelegate

Эти делегаты обрабатывают обратные вызовы результата захвата документа:

МетодОписание
onSuccessDocument(result)Захват выполнен успешно — возвращает DocumentResult с base64 (предпросмотр) и encrypted (JWT для API)
onErrorDocument(errorBio)Захват не выполнен — возвращает ErrorBio с кодом и описанием
class ViewController: UIViewController, AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate {

func onSuccessDocument(_ result: DocumentResult!) { }
func onErrorDocument(_ errorBio: ErrorBio!) { }
}
Шаг 3 — Вызовите prepareDocumentCamera и openDocument

Вызовите prepareDocumentCamera, передав конфигурацию SDK. Когда камера будет готова, сработает onCameraReadyDocument с AcessoBioCameraOpenerDelegate — откройте камеру с помощью openDocument() и передайте желаемый DocumentEnums:

  • onCameraReadyDocument(cameraOpener) — камера готова; вызовите openDocument(.CNH, delegate: self).
  • onCameraFailedDocument(message) — подготовка камеры завершилась ошибкой (ErrorPrepare является расширением ErrorBio).
@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!) { }

Полную информацию об обработке результата см. в разделе Получение результата.