الانتقال إلى المحتوى الرئيسي
يشرح هذا الدليل كيفية تضمين تدفق التحقق عبر الويب من Didit داخل مكوّن WebView في تطبيق الهاتف المحمول. وهو ليس مثل حزم SDK الأصلية لنظامي iOS وAndroid ولإطاري React Native وFlutter، بل هو خيار احتياطي للمنصات التي لا يمكنها استخدام حزمة SDK أصلية.

فضّل دائمًا حزم SDK الأصلية

تتوفر حزم SDK الأصلية لنظامي iOS وAndroid ولإطاري React Native وFlutter. وهي توفر أداءً أفضل بكثير، ومعالجة أفضل للكاميرا، وقراءة لجواز السفر أو الهوية عبر NFC، وتكاملًا مع المصادقة البيومترية، وتجربة مستخدم أفضل. استخدم WebView فقط إذا لم تتوفر حزمة SDK أصلية لمنصتك.

حزمة iOS SDK

حزمة Swift الأصلية لنظام iOS 13+

حزمة Android SDK

حزمة Kotlin الأصلية لنظام Android 6.0+

حزمة React Native SDK

واجهة برمجة تطبيقات TypeScript متعددة المنصات. متوافقة مع Expo.

حزمة Flutter SDK

واجهة برمجة تطبيقات Dart متعددة المنصات. حزمة pub.dev.

متى تستخدم WebView

استخدم تكامل WebView فقط في الحالات التالية:
  • إذا كنت تبني على منصة لا توجد لها حزمة SDK أصلية (مثل Xamarin أو Cordova أو أطر عمل أخرى أقل انتشارًا)
  • إذا كنت تحتاج إلى نموذج أولي سريع أو إثبات مفهوم قبل دمج حزمة SDK الأصلية
  • إذا كنت تنتقل من الويب وتريد جسرًا مؤقتًا إلى تكامل أصلي

كيف يعمل

1

إنشاء جلسة

يستدعي الخادم الخلفي واجهة برمجة التطبيقات لإنشاء جلسة ويتلقى رابطًا مستضافًا في الحقل url.
2

الفتح في WebView

يحمّل تطبيقك العنوان url في مكوّن WebView.
3

يُكمل المستخدم التحقق

ينتقل المستخدم عبر تدفق التحقق داخل WebView.
4

اعتراض رد الاستدعاء

عند الانتهاء، تنتقل WebView إلى رابط الاستدعاء الخاص بك. يعترض تطبيقك هذا الانتقال ويستخرج النتيجة.
5

الحصول على النتائج الكاملة عبر webhook

يتلقى خادمك الخلفي بيانات القرار الكاملة عبر webhook.

إنشاء جلسة

قبل فتح تدفق التحقق، أنشئ جلسة من خادمك الخلفي:
الاستجابة (201، إذ يتضمن الحقل url الرمز session_token المكوّن من 12 حرفًا، وليس session_id):
حمّل الحقل url في WebView، ولا تبنِه يدويًا من session_token أبدًا.

React Native

ثبّت حزمة WebView:

التنفيذ

عرض توضيحي لـ React Native

مثال للتحقق باستخدام Expo وWebView

Flutter

أضف الحزم المطلوبة إلى pubspec.yaml:

التنفيذ

عرض توضيحي لـ Flutter

مثال للتحقق باستخدام WebView في Flutter

الإعداد الحرج

وكيل المستخدم (مطلوب)

يجب عليك ضبط وكيل مستخدم عام للهاتف المحمول حتى تعمل WebView بشكل صحيح:
يضمن ذلك وصولًا صحيحًا إلى الكاميرا، وعرضًا سليمًا للواجهة، وتشغيلًا مثاليًا للوسائط.

إعدادات الوسائط (مطلوبة)


معالجة الاستدعاء

بعد التحقق، تعيد WebView التوجيه إلى رابط الاستدعاء الخاص بك مع معاملات الاستعلام:
لتجربة مستخدم أفضل، استخدم مخطط عنوان URL مخصصًا (مثل myapp://verification-complete) كرد استدعاء، وعالجه كرابط عميق في تطبيقك.

استكشاف الأخطاء وإصلاحها

  1. تأكد من أن قيمة mediaPlaybackRequiresUserGesture هي false
  2. تحقق من منح أذونات الكاميرا على مستوى نظام التشغيل
  3. تأكد من ضبط سلسلة وكيل المستخدم بشكل صحيح
  1. تحقق من أن عنوان URL للجلسة صالح وغير منتهٍ
  2. تحقق من الاتصال بالإنترنت
  3. تأكد من تفعيل JavaScript في إعدادات WebView
  1. تحقق من أن رابط الاستدعاء يطابق ما ضبطته عند إنشاء الجلسة
  2. تأكد من ضبط مفوّض التنقل أو المستمع بشكل صحيح
  3. جرّب ضبط callback_method على "both" عند إنشاء الجلسة

آخر تعديل في ٧ نوفمبر ٢٠٢٦