Захват документов
Захват документов, удостоверяющих личность. 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,
);
Полную информацию об обработке результата см. в разделе Получение результата.