---
title: Liveness (صورة شخصية بيومترية)
description: التقاط صورة شخصية بيومترية مع التحقق من الحضور الجسدي المدمج، مع إعادة الإطار الملتقط بتنسيق Base64 وJWT.
canonical: https://developer.unico.io/ar/dual-api/developers/sdks-and-tools/ios/capture-flow/capture-types/liveness
locale: ar
generated_by: markdown-export
---

التقاط صورة شخصية بيومترية مع التحقق من الحضور الجسدي المدمج. يُوجّه SDK المستخدم حتى يتم الحصول على إطار بيومتري صالح عبر SmartFrames، ثم يُعيد الصورة بتنسيق Base64 مع JWT.

:::secondary[القدرة]
يستخدم نوع الالتقاط هذا قدرة **Liveness**. للاطلاع على نظرة عامة مفاهيمية حول آلية عمل Liveness، راجع صفحة قدرة Liveness.
:::

## آلية العمل

يدير SDK جلسة الالتقاط الكاملة:

1. يفتح الكاميرا مع تراكب SmartFrame.
2. يُوجّه المستخدم لتحديد موضع وجهه داخل الإطار.
3. يتحقق من الحضور الجسدي — لا تكتمل الجلسة إلا عندما يكون المستخدم حاضراً فعلياً.
4. يُعيد كائن `SelfieResult` (المعرَّف أيضاً بـ `ResultCamera`) يحتوي على `base64` و`encrypted` (JWT).

## وضع الكاميرا (الالتقاط الذكي)

يحتوي SDK على **تأطير ذكي** و**التقاط تلقائي** مُفعَّلَين افتراضياً. قم بتهيئة وضع الكاميرا في الـ builder الخاص بك على النحو التالي:

### Swift

  ```swift
  unicoCheck.setSmartFrame(true)
  unicoCheck.setAutoCapture(true)
  ```

### Objective-C

  ```objectivec
  [unicoCheck setSmartFrame:true];
  [unicoCheck setAutoCapture:true];
  ```

## بدء جلسة التقاط Liveness

****الخطوة 2** — تطبيق `SelfieCameraDelegate` و`AcessoBioSelfieDelegate`**

تتعامل هذه الـ delegates مع callbacks نتيجة التقاط الصورة الشخصية:

  | الدالة | الوصف |
  |---|---|
  | `onSuccessSelfie(result)` | نجح الالتقاط — يُعيد `SelfieResult` مع `base64` (معاينة) و`encrypted` (JWT للـ API) |
  | `onErrorSelfie(errorBio)` | فشل الالتقاط — يُعيد `ErrorBio` يحتوي على الكود والوصف |

  :::warning[انتهاء صلاحية الـ Token]
  يجب ألا يتجاوز الفاصل الزمني بين إنشاء `encrypted` وإرساله إلى الـ API **10 دقائق**.
  :::

  ### Swift

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

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

### Objective-C

    ```objectivec
    // .h
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate> {
      AcessoBioManager *unicoCheck;
    }

    // .m
    - (void)onSuccessSelfie:(SelfieResult *)result {
        NSLog(@"%@", result.base64);
    }

    - (void)onErrorSelfie:(ErrorBio *)errorBio { }
    ```

****الخطوة 3** — استدعاء `prepareSelfieCamera` و`open`**

استدعِ `prepareSelfieCamera` مع تمرير إعداد SDK. عندما تكون الكاميرا جاهزة، يتم تشغيل حدث `onCameraReady` مع `AcessoBioCameraOpenerDelegate` — افتح الكاميرا من خلال دالة `open()`:

  - `onCameraReady(cameraOpener)` — الكاميرا جاهزة؛ استدعِ `open(self)`.
  - `onCameraFailed(message)` — فشل تحضير الكاميرا (`ErrorPrepare` هو امتداد لـ `ErrorBio`).

  ### Swift

    ```swift
    @IBAction func openCamera(_ sender: Any) {
      unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
    }

    func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
      cameraOpener.open(self)
    }

    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];
    }

    - (void)onCameraFailed:(ErrorPrepare *)message { }
    ```

للتعامل الكامل مع النتيجة، راجع [استلام النتيجة](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).