---
title: Пользовательские сценарии
canonical: https://developer.unico.io/ru/developers/sdks-and-tools/ios/capture-flow/user-journeys
locale: ru
generated_by: markdown-export
---

- [/ru/](/ru/)
- [SDK и инструменты](/ru/developers/sdks-and-tools/overview)
- [iOS SDK](/ru/developers/sdks-and-tools/ios/requirements)
- Процесс захвата
- Пользовательские сценарии

# Пользовательские сценарии

Пользовательские сценарии — это многоэтапные сессии захвата, организованные SDK совместно с настроенным потоком. Например, поток с Liveness + Risk Score + Document Capture + Electronic Signature выполняет захват селфи, документа и подписи в одной сессии.

ПродуктыДоступные сценарии зависят от потока, настроенного для вашей интеграции. Полное сопоставление продукт → поток → возможность см. в разделе [Продукты](/ru/products).

Как это работает
SDK:

1. Считывает конфигурацию потока, предоставленную при инициализации.
2. Организует последовательность захватов, необходимых для потока (селфи, документ, подпись).
3. Возвращает `processId` через `onSuccess` при завершении journey. Для шага с селфи данные изображения (`base64` / `encrypted`) также возвращаются через `onSuccessSelfie`. Захват документов и подписи обрабатывается SDK внутренне — никакой артефакт по шагам не передаётся клиенту.

Оркестрация полностью осуществляется SDK — вам не нужно реализовывать последовательность шагов в вашем приложении.

Запуск пользовательского сценария
**Шаг 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** — Реализуйте `AcessoBioSelfieDelegate`Переопределите методы для обработки обратных вызовов результатов захвата в сценарии:МетодОписание`onSuccessSelfie(result)`Изображение успешно захвачено — возвращает `SelfieResult` для последующих вызовов REST API`onSuccess(result)`Journey успешно завершён — возвращает `processId`, используемый для запроса результатов валидации`onErrorSelfie(errorBio)`Захват завершился ошибкой — возвращает `ErrorBio` с деталями ошибкиSwiftObjective-C```
class ViewController: UIViewController, AcessoBioManagerDelegate,  SelfieCameraDelegate, AcessoBioSelfieDelegate {  func onSuccessSelfie(_ result: SelfieResult!) { }  func onSuccess(_ result: SuccessResult!) { }  func onErrorSelfie(_ errorBio: ErrorBio!) { }}
```

```
@interface ViewController: UIViewController <AcessoBioManagerDelegate,  SelfieCameraDelegate, AcessoBioSelfieDelegate>@end@implementation ViewController- (void)onSuccessSelfie:(SelfieResult *)result { }- (void)onSuccess:(SuccessResult *)result { }- (void)onErrorSelfie:(ErrorBio *)errorBio { }@end
```

**Шаг 3** — Вызовите `prepareSelfieCamera` и `open`Вызовите `prepareSelfieCamera`, передав конфигурацию SDK. Когда камера готова, срабатывает событие `onCameraReady` — откройте камеру с помощью метода `open()`, передав `webAppToken`:webAppToken`webAppToken` — это поле `process.webAppToken`, возвращаемое запросом `POST /client/v1/process` при создании процесса на вашем бэкенде. См. Создание процесса.
`onCameraReady(cameraOpener)` — камера готова; вызовите `open(self, webAppToken:)`.
`onCameraFailed(message)` — подготовка камеры завершилась ошибкой (`ErrorPrepare` является расширением `ErrorBio`).
SwiftObjective-C```
@IBAction func openCamera(_ sender: Any) {  unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())}func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {  cameraOpener.open(self, webAppToken: "your_web_app_token")}func onCameraFailed(_ message: ErrorPrepare!) { }
```

```
- (IBAction)openCamera:(UIButton *)sender {    [[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];}- (void)onCameraReady:(id)cameraOpener {    [cameraOpener open:self webAppToken:@"your_web_app_token"];}- (void)onCameraFailed:(ErrorPrepare *)message { }
```

Полное описание обработки результата см. в разделе [Получение результата](/ru/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).Последнее обновление 8 окт. 2026 г.**