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

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.

:::secondary[Produk]
Journey yang tersedia bergantung pada alur yang dikonfigurasi untuk integrasi Anda. Lihat [Produk](/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 2** — Implementasikan `AcessoBioSelfieDelegate`**

Override metode-metode untuk menangani callback hasil pengambilan gambar pada journey:

  | Metode | Deskripsi |
  |---|---|
  | `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 kesalahan |

  ### Swift

    ```swift
    class ViewController: UIViewController, AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate {

      func onSuccessSelfie(_ result: SelfieResult!) { }
      func onSuccess(_ result: SuccessResult!) { }
      func onErrorSelfie(_ errorBio: ErrorBio!) { }
    }
    ```

### Objective-C

    ```objectivec
    @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`:

  :::info[webAppToken]
  `webAppToken` adalah field `process.webAppToken` yang dikembalikan oleh `POST /client/v1/process` saat membuat proses di backend Anda. Lihat [Buat Proses](/dual-api/developers/api-reference/web-sdk/post-process).
  :::

  - `onCameraReady(cameraOpener)` — kamera siap; panggil `open(self, webAppToken:)`.
  - `onCameraFailed(message)` — persiapan kamera gagal (`ErrorPrepare` adalah ekstensi dari `ErrorBio`).

  ### Swift

    ```swift
    @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!) { }
    ```

### Objective-C

    ```objectivec
    - (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](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).