---
title: Perjalanan Pengguna
canonical: https://developer.unico.io/id/developers/sdks-and-tools/ios/capture-flow/user-journeys
locale: id
generated_by: markdown-export
---

- [/id/](/id/)
- [SDK dan Alat](/id/developers/sdks-and-tools/overview)
- [iOS SDK](/id/developers/sdks-and-tools/ios/requirements)
- Alur tangkapan
- Perjalanan Pengguna

# Perjalanan Pengguna

User Journeys adalah sesi pengambilan gambar multi-langkah yang diorkestrasikan oleh SDK bersama dengan alur yang dikonfigurasi. Misalnya, alur dengan Deteksi Kehidupan + Skor Risiko + Pengambilan Dokumen + Tanda Tangan Elektronik menjalankan selfie, pengambilan dokumen, dan tanda tangan dalam satu sesi.

ProdukJourney yang tersedia bergantung pada alur yang dikonfigurasi untuk integrasi Anda. Lihat [Produk](/id/products) untuk pemetaan lengkap produk → alur → kemampuan.

Cara kerjanya
SDK:

1. Membaca konfigurasi alur yang diberikan selama inisialisasi.
2. Mengorkestrasikan urutan pengambilan gambar yang diperlukan untuk alur (selfie, dokumen, tanda tangan).
3. Mengembalikan `processId` melalui `onSuccess` ketika journey selesai. Untuk langkah selfie, data gambar (`base64` / `encrypted`) juga dikembalikan melalui `onSuccessSelfie`. Pengambilan gambar dokumen dan tanda tangan diproses secara internal oleh SDK — tidak ada artefak per langkah yang diekspos ke klien.

Orkestrasi sepenuhnya ditangani oleh SDK — Anda tidak perlu mengimplementasikan urutan langkah di aplikasi Anda.

Memulai User Journey
**Langkah 1** — Implementasikan `AcessoBioManagerDelegate``AcessoBioManagerDelegate` menangani callback siklus hidup SDK. Implementasikan empat metode wajib berikut:

| Metode | Kapan dipanggil |
| --- | --- |
| `onErrorAcessoBioManager(error)` | Terjadi kesalahan selama operasi SDK |
| `onUserClosedCameraManually()` | Pengguna menutup kamera secara manual |
| `onSystemClosedCameraTimeoutSession()` | Batas sesi 40 detik telah tercapai |
| `onSystemChangedTypeCameraTimeoutFaceInference()` | Tidak ada wajah terdeteksi selama 13 detik — beralih ke pengambilan gambar manual |

- 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
```

Metode delegate wajibKeempat metode delegate di atas harus dibuat dalam proyek Anda (meskipun tanpa logika apa pun). Jika tidak, proyek tidak akan berhasil dikompilasi.
**Langkah 2** — Implementasikan `AcessoBioSelfieDelegate`Override metode-metode untuk menangani callback hasil pengambilan gambar pada journey:MetodeDeskripsi`onSuccessSelfie(result)`Gambar berhasil diambil — mengembalikan `SelfieResult` untuk panggilan REST API berikutnya`onSuccess(result)`Journey berhasil diselesaikan — mengembalikan `processId` yang digunakan untuk mengkueri hasil validasi`onErrorSelfie(errorBio)`Pengambilan gambar gagal — mengembalikan `ErrorBio` dengan detail kesalahanSwiftObjective-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
```

**Langkah 3** — Panggil `prepareSelfieCamera` dan `open`Panggil `prepareSelfieCamera` dengan memasukkan konfigurasi SDK. Saat kamera siap, event `onCameraReady` dipicu — buka kamera melalui metode `open()`, dengan meneruskan `webAppToken`:webAppToken`webAppToken` adalah field `process.webAppToken` yang dikembalikan oleh `POST /client/v1/process` saat membuat proses di backend Anda. Lihat Buat Proses.
`onCameraReady(cameraOpener)` — kamera siap; panggil `open(self, webAppToken:)`.
`onCameraFailed(message)` — persiapan kamera gagal (`ErrorPrepare` adalah ekstensi dari `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 { }
```

Untuk penanganan hasil secara lengkap, lihat [Menerima hasil](/id/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).Terakhir diperbarui pada 8 Okt 2026**