توفر حزم Onfido Smart Capture SDK مجموعة من الشاشات والوظائف التي تمكن التطبيقات من تنفيذ تدفقات التحقق من هوية المستخدم. يحتوي كل SDK على:
يتم تنسيق جميع حزم SDK الخاصة بـ Onfido Smart Capture باستخدام مسارات عمل Onfido Studio، مع اختلافات طفيفة فقط في التخصيص بين الأنظمة الأساسية المتاحة.
توجد بيئتان لدعم عمليات تكامل Onfido SDK:
يتم تحديد البيئة المستخدمة بواسطة رمز واجهة برمجة التطبيقات (API) الذي يتم استخدامه لإنشاء رمز SDK الضروري.
بمجرد أن تكون راضيًا عن التكامل الخاص بك وتكون جاهزًا لبدء البث المباشر، يرجى الاتصال بدعم عملاء Onfido للحصول على رمز واجهة برمجة التطبيقات (API) المباشر. سيتعين عليك استبدال رمز وضع الحماية المميز في التعليمات البرمجية الخاصة بك بالرمز المباشر.
تأكد من إدخال تفاصيل الفوترة الصحيحة داخل لوحة معلومات Onfido، قبل بدء البث المباشر.
يدعم iOS SDK:
ملاحظة : أحدث إصدار من SDK لدعم Xcode 11.5-12 هو الإصدار 22 من iOS SDK، وXcode 14+ هو الإصدار 29 من iOS SDK. ويوجد حل بديل للإصدارات الأقدم من Xcode إذا لزم الأمر. يرجى الاتصال بفريق دعم العملاء في Onfido لمزيد من المعلومات.
ملاحظة : يتطلب iOS SDK تشغيل CoreNFC (بغض النظر عما إذا كنت تستخدم NFC أم لا). منذ إصدار Xcode 12، هناك خطأ حيث أن libnfshared.dylib
مفقود من المحاكيات. ارجع إلى Stack Overflow للحصول على حل لهذه المشكلة.
ملاحظة : في حالة تعطيل ميزة NFC، قد تطلب منك Apple تقديم مقطع فيديو لتوضيح استخدام NFC نظرًا لأن التعليمات البرمجية المتعلقة بـ NFC جزء من SDK الثنائي، بغض النظر عن تكوين وقت التشغيل. بينما نعمل على إيجاد حل دائم لهذه المشكلة، يمكنك الاتصال بدعم عملاء Onfido في هذه الأثناء للحصول على مقطع فيديو.
يستخدم SDK كاميرا جهاز المستخدم (لالتقاط المستندات والوجه) والميكروفون (لالتقاط الفيديو والحركة). يجب أن يكون لديك المفاتيح التالية في ملف Info.plist
الخاص بالتطبيق الخاص بك:
NSCameraUsageDescription
NSMicrophoneUsageDescription
< key >NSCameraUsageDescription</ key >
< string >Required for document and face capture</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >Required for video capture</ string >
ملاحظة : ستكون جميع المفاتيح مطلوبة لتقديم التطبيق.
يتوفر SDK مع Swift Package Manager، ويمكنك تضمينه في مشروعك عن طريق إضافة عنوان URL التالي لمستودع الحزمة:
dependencies: [
. package ( url : " https://github.com/onfido/onfido-ios-sdk.git " , . branch ( " master " ) )
]
يتوفر SDK أيضًا على CocoaPods، ويمكنك تضمينه في مشروعك عن طريق إضافة ما يلي إلى ملف Podfile الخاص بك:
pod 'Onfido'
قم بتشغيل pod install
للحصول على SDK.
يتوفر SDK في علامة تبويب إصدارات GitHub، حيث يمكنك تنزيل الإطار المضغوط. يمكنك العثور على أحدث إصدار هنا.
Onfido.xcframework
Onfido.xcframework
إلى مجلد المشروع الخاص بكOnfido.xcframework
الموجود داخل مشروعك إلى قسم Embedded binaries
في علامة التبويب General
لهدف تطبيق iOS الخاص بكإذا كان تطبيقك لا يعتمد على Swift، فيجب عليك إنشاء ملف Swift جديد داخل مشروعك. هذا الملف مطلوب لإجبار Xcode على حزم مكتبات وقت تشغيل Swift المطلوبة لتشغيل Onfido iOS SDK.
قم بإنشاء ملف Swift بالمحتويات التالية:
import Foundation
import AVFoundation
import CoreImage
import UIKit
import Vision
func fixLibSwiftOnoneSupport ( ) {
// from https://stackoverflow.com/a/54511127/2982993
print ( " Fixes dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib " )
}
قم بتعيين Always Embed Swift Standard Libraries
على Yes
في تكوين مشروعك.
️ تنطبق وثائق تهيئة SDK التالية على سير عمل التحقق من الهوية المُنسق باستخدام Onfido Studio. بالنسبة لعمليات التكامل التي يتم فيها تحديد خطوات التحقق وتكوينها يدويًا، يرجى الرجوع إلى قسم تخصيص التدفق المتقدم أدناه.
يحتوي iOS SDK على خيارات تهيئة وتخصيص متعددة توفر المرونة للتكامل الخاص بك، مع الحفاظ على سهولة التكامل.
Onfido Studio هو النظام الأساسي المستخدم لإنشاء مسارات عمل للتحقق من الهوية قابلة لإعادة الاستخدام بشكل كبير للاستخدام مع حزم Onfido SDK. للحصول على مقدمة حول العمل مع سير العمل، يرجى الرجوع إلى دليل بدء الاستخدام الخاص بنا، أو دليل منتج Onfido Studio.
يتم تنظيم جلسات SDK بواسطة workflow_run_id
الخاص بالجلسة، وهو مشتق بحد ذاته من workflow_id
، وهو المعرف الفريد لسير عمل معين.
للحصول على تفاصيل حول كيفية إنشاء workflow_run_id
، يرجى الرجوع إلى تعريف نقطة النهاية POST /workflow_runs/
في مرجع Onfido API.
لاحظ أنه في سياق SDK، تتم الإشارة إلى خاصية
workflow_run_id
باسمworkflowRunId
.
عند تحديد سير العمل وإنشاء عمليات التحقق من الهوية، نوصي بشدة بحفظ applicant_id
مقابل مستخدم محدد لإعادة استخدامه المحتمل. يساعد هذا في تتبع المستخدمين إذا كنت ترغب في تشغيل عمليات تحقق متعددة من الهوية على نفس الشخص، أو في السيناريوهات التي يعود فيها المستخدم إلى تدفق التحقق ويستأنفه.
تتم مصادقة SDK باستخدام رموز SDK. يقوم Onfido Studio بإنشاء رموز SDK المميزة وكشفها في حمولة تشغيل سير العمل التي يتم إرجاعها بواسطة واجهة برمجة التطبيقات (API) عند إنشاء تشغيل سير العمل.
لا يمكن استخدام رموز SDK المميزة لـ Studio إلا مع تشغيل سير العمل المحدد الذي تم إنشاؤها من أجله، وتظل صالحة لمدة خمسة أسابيع.
ملاحظة : يجب عليك عدم استخدام الرموز المميزة لواجهة برمجة التطبيقات (API) مطلقًا في الواجهة الأمامية لتطبيقك حيث يمكن للمستخدمين الضارين اكتشافها في التعليمات البرمجية المصدر الخاصة بك. يجب عليك استخدامها فقط على الخادم الخاص بك.
لاستخدام SDK، تحتاج إلى الحصول على مثيل لكائن العميل، باستخدام رمز SDK المميز الذي تم إنشاؤه ومعرف تشغيل سير العمل.
let workflowConfiguration = WorkflowConfiguration ( workflowRunId : " <WORKFLOW_RUN_ID> " , sdkToken : " <YOUR_SDK_TOKEN> " )
let onfidoRun = OnfidoFlow ( workflowConfiguration : orchestrationConfig )
customerViewController . present ( try onfidoRun . run ( ) , animated : true , completion : nil )
// listen for the result
تحتوي جوازات السفر الحديثة وبطاقات الهوية الوطنية وتصاريح الإقامة على شريحة يمكن الوصول إليها باستخدام تقنية الاتصال قريب المدى (NFC). توفر حزم Onfido SDK مجموعة من الشاشات والوظائف لاستخراج هذه المعلومات والتحقق من صحتها وتوفير التحقق الناتج كجزء من تقرير المستند.
بدءًا من الإصدار 29.1.0 وما بعده من Onfido iOS SDK، يتم تمكين NFC افتراضيًا ويتم تقديمها للمستخدمين النهائيين عندما يدعم كل من المستند والجهاز NFC.
لمزيد من المعلومات حول كيفية تكوين NFC وقائمة المستندات المدعومة، يرجى الرجوع إلى دليل NFC لتقرير المستند.
تتطلب هذه الميزة إمكانية Near Field Communication Tag Reading
في هدف تطبيقك. إذا لم تقم بإضافته من قبل، فيرجى اتباع الخطوات الواردة في وثائق Apple.
لدعم مستندات NFC PACE، تحتاج إلى تحرير استحقاقات التطبيق:
Near Field Communication Tag Reader Session Formats
Password Authenticated Connection Establishment (PACE)
من القائمة المنسدلة< key >com.apple.developer.nfc.readersession.formats</ key >
< array >
< string >PACE</ string >
< string >TAG</ string >
</ array >
يجب أن يكون لديك المفتاح التالي في ملف Info.plist
الخاص بالتطبيق الخاص بك:
< key >NFCReaderUsageDescription</ key >
< string >Required to read ePassports</ string >
Info.plist
الخاص بهدف تطبيقك لتتمكن من قراءة علامات NFC بشكل صحيح. <key>com.apple.developer.nfc.readersession.felica.systemcodes</key>
<array>
<string>12FC</string>
</array>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>A0000002471001</string>
<string>A0000002472001</string>
<string>00000000000000</string>
<string>D2760000850101</string>
</array>
لتكوين NFC باستخدام Onfido Studio، يمكنك استخدام أحد الخيارات التالية في أداة إنشاء سير العمل:
optional
): ستتم محاولة قراءة NFC، إن أمكن لتكوين NFC في التعليمات البرمجية، اتصل بوظيفة withNFC()
أثناء تكوين OnfidoConfig
(راجع قسم تخصيص التدفق المتقدم أدناه) باستخدام الخيارات المذكورة أعلاه.
️ عندما يتم تكوين NFC كما هوrequired
باستخدام التعليمات البرمجية، على عكس Studio، لن تقوم SDK بتصفية أنواع المستندات التي لا تدعم NFC، للحصول على أفضل تجربة للمستخدم النهائي، أو تعرض فقط أنواع المستندات التي تدعم NFC كما هو مذكور هنا، أو تفضل استخدام Studio
يدعم iOS SDK تخصيص الألوان والخطوط والسلاسل المستخدمة في تدفق SDK.
لتخصيص شكل ومظهر SDK، يمكنك تمرير قيم CSS المطلوبة إلى كائن Appearance
، في جذر كائن WorkflowConfiguration
.
let appearance = Appearance ( )
appearance . primaryColor = < DESIRED_UI_COLOR_HERE >
appearance . primaryTitleColor = < DESIRED_UI_COLOR_HERE >
ONAppearance *appearance = [[ONAppearance alloc ] init ];
appearance.primaryColor = <DESIRED_UI_COLOR_HERE>;
appearance.primaryTitleColor = <DESIRED_UI_COLOR_HERE>;
يرجى الرجوع إلى وثائق تخصيص SDK للحصول على تفاصيل حول خيارات واجهة المستخدم المدعومة التي يمكن تعيينها في هذه الخاصية.
يدعم iOS SDK تخصيص المظهر الداكن. افتراضيًا، سيتم تطبيق سمة الجهاز النشط للمستخدم تلقائيًا على Onfido SDK. ومع ذلك، يمكنك إلغاء الاشتراك في تبديل السمات الديناميكية في وقت التشغيل وبدلاً من ذلك تعيين سمة بشكل ثابت في وقت الإنشاء كما هو موضح أدناه. في هذه الحالة، سيتم دائمًا عرض التدفق في السمة المحددة بغض النظر عن سمة جهاز المستخدم.
يتيح لك interfaceStyle
فرض الوضع الفاتح أو المظلم عبر .dark
و .light
على التوالي. افتراضيًا، يتم ضبطه على .unspecified
، والذي سيتبع نمط واجهة النظام.
ملاحظة: تم الآن إهمال السمة السابقة supportDarkMode
. الرجاء استخدام interfaceStyle
بدلا من ذلك.
على سبيل المثال، لتعيين نمط الواجهة إلى .dark
، يمكنك استخدام الكود أدناه:
let appearance = Appearance ( )
appearance . setUserInterfaceStyle ( . dark )
ONAppearance *appearance = [ONAppearance new ];
[appearance setUserInterfaceStyle: UIUserInterfaceStyleDark];
لتطبيق المظهر يمكنك استخدام الطرق أدناه:
let configBuilder = OnfidoConfig . builder ( )
configBuilder . withAppearance ( appearance )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withAppearance: appearance];
تتيح Onfido SDK خيارين للعلامة التجارية المشتركة التي تؤثر على عرض شعار Onfido في الجزء السفلي من شاشات Onfido.
cobrand {Object}
- اختياري
الطريقة الأكثر فعالية لإضافة علامتك التجارية إلى العلامة المائية للتذييل هي استخدام خاصية cobrand
ضمن enterpriseFeatures
. تأخذ هذه الخاصية معلمة text
.
let companyName = " MyCompany "
let enterpriseFeatures = EnterpriseFeatures . builder ( )
. withCobrandingText ( companyName )
. build ( )
NSString *companyName = @" MyCompany " ;
ONEnterpriseFeaturesBuilder *enterpriseFeatures = [ONEnterpriseFeatures builder ];
[enterpriseFeatures withCobrandingText: companyName];
[enterpriseFeatures build ];
يرجى ملاحظة ما يلي : يجب تمكين العلامة التجارية النصية المشتركة بواسطة Onfido. يرجى الاتصال بمهندس الحلول أو مدير نجاح العملاء لتنشيط الميزة.
logoCobrand {Object}
- اختياري
كبديل لـ cobrand
، يمكنك تحديد مجموعة من الصور التي سيتم تعريفها في خاصية logoCobrand
ضمن enterpriseFeatures
. يجب عليك توفير المسار إلى الصورة لاستخدامها في الوضع "المظلم" وصورة منفصلة للوضع "الفاتح". يجب أن تكون دقة الصورتين 144x32.
let onfidoEnterpriseFeatures = EnterpriseFeatures . builder ( )
. withCobrandingLogo (
UIImage ( named : " imageName_for_lightmode " ) ! ,
cobrandingLogoDarkMode : UIImage ( named : " imageName_for_darkmode " ) !
)
. build ( )
ONEnterpriseFeaturesBuilder *enterpriseFeatures = [ONEnterpriseFeatures builder ];
[enterpriseFeatures withCobrandingLogo:
[UIImage imageNamed: @" onfido-logo-white " ] cobrandingLogoDarkMode: [UIImage imageNamed: @" onfido-logo-grey " ]
];
[enterpriseFeatures build ];
يرجى ملاحظة ما يلي : يجب تمكين العلامة التجارية المشتركة للشعار بواسطة Onfido. يرجى الاتصال بمهندس الحلول أو مدير نجاح العملاء لتنشيط الميزة.
لتطبيق العلامة التجارية المشتركة، قم بإضافة كائن ميزات المؤسسة إلى OnfidoConfig
:
let configBuilder = OnfidoConfig . builder ( )
configBuilder . withEnterpriseFeatures ( enterpriseFeatures )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withEnterpriseFeatures: enterpriseFeatures];
يدعم Onfido SDK ويحافظ على الترجمات لأكثر من 40 لغة.
يمكن تخصيص السلاسل المستخدمة داخل SDK من خلال وجود Localizable.strings
في تطبيقك للغة المطلوبة ومن خلال تكوين التدفق باستخدام طريقة withCustomLocalization()
في منشئ التكوين.
- ( void ) withCustomLocalization {
[ self . configBuilder withCustomLocalization ] ; // will look for localizable strings in your Localizable.strings file
}
للحصول على قائمة اللغات التي يدعمها Onfido، يرجى الرجوع إلى وثائق تخصيص SDK الخاصة بنا.
ملاحظة : إذا لم يتم تحديد أي لغة، فسوف يكتشف SDK ويستخدم إعداد لغة جهاز المستخدم النهائي. إذا كانت لغة الجهاز غير مدعومة، فسيتم تعيين SDK افتراضيًا على اللغة الإنجليزية ( en_US
).
يمكن أيضًا عرض SDK بلغة مخصصة للغات المحلية التي لا يدعمها Onfido حاليًا. يمكنك توفير ترجمات كاملة أو جزئية. بالنسبة لأي مفتاح بدون ترجمة، سيتم استخدام اللغة الافتراضية المدعومة.
عند إضافة ترجمات مخصصة، يجب عليك إضافة المجموعة الكاملة من المفاتيح المضمنة في ملف Localizable.strings
.
يمكنك تسمية ملف السلاسل باستخدام المفاتيح المترجمة كما تريد ولكن يجب تقديم اسم الملف إلى SDK كمعلمة للطريقة withCustomLocalization()
:
withCustomLocalization(andTableName: "MY_CUSTOM_STRINGS_FILE")
(سويفت)[configBuilder withCustomLocalizationWithTableName:@"MY_CUSTOM_STRINGS_FILE"];
(الهدف-ج)بالإضافة إلى ذلك، يمكنك تحديد الحزمة التي تريد قراءة ملف السلاسل منها:
withCustomLocalization(andTableName: "MY_CUSTOM_STRINGS_FILE", in: myBundle)
(Swift)[configBuilder withCustomLocalizationWithTableName:@"MY_CUSTOM_STRINGS_FILE" in: myBundle];
(الهدف-ج)ملحوظة :
لطلب ترجمة لغة جديدة، أو تقديم تعليقات أو اقتراحات بشأن الترجمات المقدمة، يمكنك التواصل مع دعم عملاء Onfido
عند انتهاء جلسة Onfido SDK، قد يتم تشغيل مجموعة من وظائف رد الاتصال.
بالنسبة لعمليات الاسترجاعات المتقدمة المستخدمة لتحليلات المستخدم وإعادة الوسائط المقدمة، يرجى الرجوع إلى قسم عمليات الاسترجاعات المتقدمة في هذا المستند.
لتلقي النتيجة من سير عمل مكتمل، يجب عليك تمرير رد اتصال إلى مثيل OnfidoFlow
. يتم توفير الكود التالي كمثال:
onfidoRun . with ( responseHandler : { ( response : OnfidoResponse ) in
switch response {
case . success :
// User completed the flow
case . cancel ( let cancellationReason ) :
// Flow cancelled by user
print ( cancellationReason )
case . error ( let error ) :
// Error occurred
print ( error )
}
} ,
dismissFlowOnCompletion : true )
// Dismiss the whole flow when the user completes it, and return back to the integrator view
يصف | ملحوظات |
---|---|
.نجاح | رد الاتصال الذي يتم تشغيله عند اكتمال كافة المهام التفاعلية في سير العمل. عند النجاح، إذا قمت بتكوين خطافات الويب، فسيتم إرسال إشعار إلى الواجهة الخلفية لديك لتأكيد انتهاء تشغيل سير العمل. لا تحتاج إلى إنشاء شيك باستخدام الواجهة الخلفية لديك حيث يتم التعامل مع ذلك مباشرة من خلال سير العمل |
.خطأ(خطأ) | رد الاتصال الذي يتم تشغيله عند حدوث خطأ |
.يلغي | رد الاتصال الذي يتم تشغيله عند خروج المستخدم من سير العمل قبل الأوان. يمكن أن يكون السبب هو .userExit أو .consentDenied |
كائن Error
الذي تم إرجاعه كجزء من OnfidoResponse.error(Error)
هو من النوع OnfidoFlowError
. إنه تعداد يحتوي على حالات متعددة اعتمادًا على نوع الخطأ.
switch response {
case let OnfidoResponse . error ( error ) :
switch error {
case OnfidoFlowError . cameraPermission :
// This happens if the user denies permission to the SDK during the flow
case OnfidoFlowError . failedToWriteToDisk :
// This happens when the SDK tries to save capture to disk, maybe due to a lack of space
case OnfidoFlowError . microphonePermission :
// This happens when the user denies permission for microphone usage by the app during the flow
case OnfidoFlowError . upload ( let OnfidoApiError ) :
// This happens when the SDK receives an error from an API call.
// See https://documentation.onfido.com/api/latest#errors for more information
case OnfidoFlowError . exception ( withError : let error , withMessage : let message ) :
// This happens when an unexpected error occurs.
// Please email [Customer support](mailto:supportonfido.com) when this happens
case OnfidoFlowError . versionInsufficient :
// This happens when you are using an older version of the iOS SDK and trying
// to access a new functionality from workflow. You can fix this by updating the SDK
default : // necessary because of Swift
}
}
في حين أن SDK مسؤول عن التقاط وتحميل وسائط وبيانات المستخدم، يتم إنشاء تقارير التحقق من الهوية نفسها بناءً على سير العمل الذي تم إنشاؤه باستخدام Onfido Studio.
للحصول على إرشادات خطوة بخطوة لإنشاء التحقق من الهوية باستخدام Onfido Studio ومجموعات تطوير البرامج (SDK) الخاصة بنا، يرجى الرجوع إلى دليل البدء السريع الخاص بنا.
إذا قام تطبيقك بتهيئة Onfido iOS SDK باستخدام الخيارات المحددة في قسم التخصيص المتقدم في هذا المستند، فيمكنك إنشاء عمليات التحقق واسترداد نتائج التقرير يدويًا باستخدام Onfido API. يمكنك أيضًا تكوين خطافات الويب ليتم إعلامك بشكل غير متزامن عند إنشاء نتائج التقرير.
يشير هذا القسم الخاص بـ "التخصيص المتقدم" إلى عملية تهيئة Onfido iOS SDK دون استخدام Onfido Studio. تتطلب هذه العملية تعريفًا يدويًا لخطوات التحقق وتكوينها.
تعد معلمات خطوة التدفق هذه حصرية بشكل متبادل مع workflowRunId
، مما يتطلب طريقة بديلة لإنشاء مثيل للعميل وبدء التدفق.
لاحظ أن عملية التهيئة هذه غير مستحسنة نظرًا لأن معظم الميزات الجديدة تم إصدارها حصريًا لسير عمل الاستوديو.
تتم مصادقة SDK باستخدام رموز SDK. نظرًا لأن كل رمز مميز لـ SDK يجب أن يكون خاصًا بمقدم الطلب وجلسة معينة، يجب إنشاء رمز مميز جديد في كل مرة تقوم فيها بتهيئة Onfido iOS SDK.
المعلمة | ملحوظات |
---|---|
applicant_id | مطلوب يحدد مقدم الطلب لمثيل SDK. |
application_id | مطلوب معرف التطبيق (لـ iOS "معرف حزمة التطبيق") الذي تم إعداده أثناء التطوير. بالنسبة لنظام التشغيل iOS، يكون هذا عادةً بالصيغة com.your-company.app-name . تأكد من استخدام application_id صالحًا وإلا ستتلقى خطأ 401. |
للحصول على تفاصيل حول كيفية إنشاء رموز SDK يدويًا، يرجى الرجوع إلى تعريف POST /sdk_token/
في مرجع Onfido API.
ملاحظة : يجب عليك عدم استخدام الرموز المميزة لواجهة برمجة التطبيقات (API) مطلقًا في الواجهة الأمامية لتطبيقك حيث يمكن للمستخدمين الضارين اكتشافها في التعليمات البرمجية المصدر الخاصة بك. يجب عليك استخدامها فقط على الخادم الخاص بك.
expireHandler
عند إنشاء رموز SDK يدويًا، من المهم ملاحظة أنها تنتهي صلاحيتها بعد 90 دقيقة.
مع أخذ ذلك في الاعتبار، نوصيك باستخدام المعلمة expireHandler
الاختيارية في وظيفة تكوين رمز SDK المميز لإنشاء رمز SDK مميز جديد وتمريره عند انتهاء صلاحيته. وهذا يضمن استمرار SDK في التدفق حتى بعد انتهاء صلاحية رمز SDK المميز.
على سبيل المثال:
func getSDKToken ( _ completion : @escaping ( String ) -> Void ) {
// Your network request logic to retrieve SDK token goes here
completion ( myNewSDKtoken )
}
let config = try OnfidoConfig . builder ( )
. withSDKToken ( " <YOUR_SDK_TOKEN> " , expireHandler : getSDKToken )
-( void ) getSDKToken: ( void (^)( NSString *)) handler {
// <Your network request logic to retrieve SDK token goes here>
handler (sdkToken);
}
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withSdkToken: @" YOUR_SDK_TOKEN " expireHandler: ^( void (^ handler)( NSString * expireHandler)) {
[ self getSDKToken: handler];
}];
بمجرد إضافة تبعية SDK، والحصول على معرف مقدم الطلب، يمكنك تكوين خطوات تدفق SDK يدويًا:
let config = try OnfidoConfig . builder ( )
. withSDKToken ( " <YOUR_SDK_TOKEN> " )
. withWelcomeStep ( )
. withDocumentStep ( )
. withProofOfAddressStep ( )
. withFaceStep ( ofVariant : . photo ( withConfiguration : nil ) )
. build ( )
let onfidoFlow = OnfidoFlow ( withConfiguration : config )
. with ( responseHandler : { results in
// Callback when flow ends
} )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withSdkToken: @" YOUR_SDK_TOKEN " ];
[configBuilder withWelcomeStep ];
[configBuilder withDocumentStep ];
[configBuilder withProofOfAddressStep ];
NSError *variantConfigError = NULL ;
Builder *variantBuilder = [ONFaceStepVariantConfig builder ];
[variantBuilder withPhotoCaptureWithConfig: NULL ];
[configBuilder withFaceStepOfVariant: [variantBuilder buildAndReturnError: &variantConfigError]];
if (variantConfigError == NULL ) {
NSError *configError = NULL ;
ONFlowConfig *config = [configBuilder buildAndReturnError: &configError];
if (configError == NULL ) {
ONFlow *onFlow = [[ONFlow alloc ] initWithFlowConfiguration: config];
[onFlow withResponseHandler: ^(ONFlowResponse *response) {
// Callback when flow ends
}];
}
}
try onfidoRun . run ( from : yourViewController , animated : true )
NSError *runError = NULL ;
[onFlow runFrom: yourViewController animated: YES error: &runError completion: nil ];
if (runError != NULL ) {
// do fallback logic
}
لتخصيص شكل ومظهر SDK، يمكنك تمرير قيم CSS المطلوبة إلى كائن Appearance
في جذر كائن OnfidoConfig.builder()
.
let appearance = Appearance ( )
appearance . primaryColor = < DESIRED_UI_COLOR_HERE >
appearance . primaryTitleColor = < DESIRED_UI_COLOR_HERE >
ONAppearance *appearance = [[ONAppearance alloc ] init ];
appearance.primaryColor = <DESIRED_UI_COLOR_HERE>;
appearance.primaryTitleColor = <DESIRED_UI_COLOR_HERE>;
لتطبيق المظهر، يمكنك استخدام الطرق التالية:
let configBuilder = OnfidoConfig . builder ( )
configBuilder . withAppearance ( appearance )
ONFlowConfigBuilder *configBuilder = [ONFlowConfig builder ];
[configBuilder withAppearance: appearance];
يرجى الرجوع إلى وثائق تخصيص SDK للحصول على تفاصيل حول خيارات واجهة المستخدم المدعومة التي يمكن تعيينها في هذه الخاصية.
يمكنك تخصيص تدفق SDK عن طريق إضافة خطوات إلى تدفق SDK.
تشمل الخطوات المحتملة ما يلي:
خطوة | وصف |
---|---|
withWelcomeStep | تظهر شاشة الترحيب للمستخدم مع التعليمات الأولية. تتضمن خيارات التخصيص تعديل عناصر النص والتعليمات المعروضة للمستخدم. |
withDocumentStep | مجموعة من الشاشات التي تتحكم في الالتقاط عن طريق الصورة أو تحميل مستند المستخدم. تتوفر العديد من خيارات التخصيص لتحديد قائمة المستندات المقدمة للمستخدم وتجربة الالتقاط الشاملة. |
withFaceStep | مجموعة من الشاشات التي تتحكم في التقاط صورة شخصية أو فيديو أو التقاط حركة للمستخدم. تسمح خيارات التخصيص باختيار متغير الالتقاط. |
withProofOfAddressStep | شاشة يختار فيها المستخدم بلد الإصدار ونوع المستند للتحقق من عنوانه. |
هذه الخطوة هي شاشة مقدمة SDK. فهو يقدم العملية ويعد المستخدم للخطوات التي سيحتاج إلى إكمالها.
على الرغم من أن هذه الشاشة اختيارية ، فإننا نوصي بإزالتها فقط إذا كان لديك بالفعل شاشة ترحيب للتحقق من الهوية الخاصة بك.
يمكنك إظهار شاشة الترحيب عن طريق استدعاء configBuilder.withWelcomeStep()
في Swift أو [configBuilder withWelcomeStep]
في Objective-C.