---
title: رحلات المستخدم
canonical: https://developer.unico.io/ar/developers/sdks-and-tools/flutter/capture-flow/user-journeys
locale: ar
generated_by: markdown-export
---

- [/ar/](/ar/)
- [SDKs والأدوات](/ar/developers/sdks-and-tools/overview)
- [Flutter SDK](/ar/developers/sdks-and-tools/flutter/requirements)
- تدفق الالتقاط
- رحلات المستخدم

# رحلات المستخدم

رحلات المستخدم هي جلسات التقاط متعددة الخطوات تنسِّقها SDK بالتزامن مع التدفق المهيَّأ. على سبيل المثال، يُنفِّذ تدفق `idchecktrustdocssign` صورة شخصية + مستند + توقيع في جلسة واحدة.

المنتجاتتعتمد الرحلات المتاحة على التدفق المهيَّأ لتكاملك. راجع [المنتجات](/ar/products) للاطلاع على الخريطة الكاملة: المنتج → التدفق → القدرة.

How it works
يُفوِّض المكوِّن الإضافي إلى SDKs الأصلية الأساسية:

1. يفتح المكوِّن الإضافي الكاميرا (Android أو iOS) مع تراكب SmartFrame.
2. تُنسِّق SDK الأصلية تسلسل الالتقاطات المطلوبة للتدفق (صورة شخصية، مستند، توقيع).
3. تُحيل SDK النتائج داخلياً إلى Unico — لا يتلقى العميل بيانات الصور ولا يديرها مباشرة.
4. يُعيد كائن `SuccessResult` مع `processId` عبر قناة المنصة.

يتم التعامل مع التنسيق بالكامل بواسطة SDK — ليست هناك حاجة إلى تنفيذ تسلسل الخطوات في كود Dart الخاص بك.

Camera mode (smart capture)
يمتلك SDK **الإطارة الذكية** و**الالتقاط التلقائي** مفعَّلَين بشكل افتراضي. قم بتهيئة وضع الكاميرا في المنشئ الخاص بك على النحو التالي:

```
UnicoCheckCameraOpener _opener = new UnicoCheck(this)**    .setAutoCapture(autoCapture: true)    .setSmartFrame(smartFrame: true)    .build();
```

Starting a User Journey
**الخطوة 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** — تنفيذ مستمعات الرحلة على `UnicoSelfie`أضف استدعاءات الرحلة إلى فئة الحالة الخاصة بك:الأسلوبالوصف`onSuccess(SuccessResult result)`نجح الالتقاط — يُعيد `SuccessResult` مع `processId` (تعالج Unico الصورة داخلياً)`onErrorSelfie(UnicoError error)`فشل الالتقاط — يُعيد `UnicoError` مع الرمز والوصفلا توجد بيانات صورةعلى خلاف تدفق التحقق من الحيوية، لا يُعيد استدعاء رحلة المستخدم `base64` أو `encrypted`. تعالج Unico بيانات الصورة داخلياً وتُعيد فقط `processId`.```
@overridevoid onSuccess(SuccessResult result) {  debugPrint('processId: ${result.processId}');}@overridevoid onErrorSelfie(UnicoError error) { }
```

**الخطوة 3** — استدعاء `openCameraSelfie`يفتح أسلوب `openCameraSelfie` الكاميرا. لرحلات المستخدم، مرِّر `webAppToken` المقدَّم من Unico بدلاً من ملف بيانات اعتماد JSON:```
_opener.openCameraSelfie(  listener: this,  webAppToken: token,);
```

Monitoring data collection
يوفر أسلوب `openCameraSelfie` تحميلاً زائداً يقبل بيانات وصفية عبر `UnicoCheckPrepareInfo` للمساعدة في تحديد جلسة المستخدم والتدفق:

`externalUserId` (String، **مطلوب**) — معرِّف المستخدم في نظامك. يُجزَّأ تلقائياً باستخدام SHA-256 قبل الإرسال.
`useCase` (String، اختياري) — معرِّف للسياق أو التدفق الجاري تشغيله حالياً. يُرسَل بنص عادي.

```
_opener.openCameraSelfie(  listener: this,  webAppToken: token,  prepareInfo: UnicoCheckPrepareInfo(    externalUserId: 'external_user_id',    useCase: 'use_case', // optional  ),);
```

للاطلاع على المعالجة الكاملة للنتيجة، راجع [استقبال النتيجة](/ar/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result).آخر تحديث في 8 أكتوبر 2026**