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

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

Захват документов, удостоверяющих личность. SDK отображает рамку, помогающую пользователю расположить документ; после позиционирования пользователь нажимает кнопку для съёмки фото.

Без проверки содержимого

SDK не выполняет никакой проверки того, что захватывается.

Доступные рамки для документов
РамкаОписание
DocumentCameraTypes.CPFЗахват CPF
DocumentCameraTypes.CNHЗахват открытого CNH
DocumentCameraTypes.CNH_FRENTEЗахват лицевой стороны CNH
DocumentCameraTypes.CNH_VERSOЗахват обратной стороны CNH
DocumentCameraTypes.RG_FRENTEЗахват лицевой стороны RG
DocumentCameraTypes.RG_VERSOЗахват обратной стороны RG
DocumentCameraTypes.OUTROS("descrição")Универсальная рамка для любого другого документа
Универсальная рамка

Если вам нужно захватить документ, для которого нет специальной рамки (например, RNE), используйте DocumentCameraTypes.OUTROS("description") — универсальная прямоугольная рамка, подходящая для любого захвата.

Полный список поддерживаемых типов документов см. в разделе Справочник API > Перечисления.

Начало захвата документа
Шаг 1 — Реализуйте UnicoListener

UnicoListener обрабатывает колбэки жизненного цикла SDK. Реализуйте четыре обязательных метода:

МетодКогда вызывается
onErrorUnico(error)Произошла ошибка в процессе работы SDK
onUserClosedCameraManually()Пользователь вручную закрыл камеру
onSystemClosedCameraTimeoutSession()Достигнут лимит сессии в 40 секунд
onSystemChangedTypeCameraTimeoutFaceInference()Лицо не обнаружено в течение 13 секунд — переключение на ручной захват
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Обязательные методы слушателя

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

Шаг 2 — Реализуйте обработчики документа

Добавьте обратные вызовы документа в класс состояния:

МетодОписание
onSuccessDocument(ResultCamera resultCamera)Захват выполнен успешно — возвращает ResultCamera с base64 (предпросмотр) и encrypted (JWT для API)
onErrorDocument(UnicoError error)Захват не выполнен — возвращает UnicoError с кодом и описанием
@override
void onSuccessDocument(ResultCamera resultCamera) { }

@override
void onErrorDocument(UnicoError error) { }
Шаг 3 — Вызовите openCameraDocument

Метод openCameraDocument() предоставляется через объект, созданный на основе экземпляра класса UnicoCheck. Он принимает:

  • JSON-файл с учётными данными, созданный в шаге настройки учётных данных;
  • тип захватываемого документа (перечисление DocumentType);
  • обработчик, настроенный на шаге 2.

Пример с открытым CNH:

_unicoCheck.build().openCameraDocument(
jsonFileName: androidJsonFileName,
documentType: DocumentType.CNH,
listener: this,
);

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