دليل التكامل المتقدم لـ iOS SDK 7.0+
يقدم هذا القسم معلومات حول التكامل المتقدم لـ Pushwoosh iOS SDK.
أوضاع الخلفية
Anchor link toلتمكين هذه الوظيفة، يجب عليك إضافة أوضاع الخلفية (Background Modes) إلى مشروعك.
خطوات تمكين أوضاع الخلفية
Anchor link to- افتح مشروعك في Xcode وحدده في Project Navigator.
- اختر هدف تطبيقك من اللوحة اليسرى.
- انتقل إلى علامة التبويب Signing & Capabilities.
- انقر فوق الزر + Capability في الزاوية العلوية اليسرى.
- ابحث عن Background Modes وحددها من القائمة.
- في قسم Background Modes، قم بتمكين Remote notifications عن طريق تحديد المربع.
بمجرد الانتهاء، سيتمكن تطبيقك من التعامل مع إشعارات الدفع، بما في ذلك الإشعارات الصامتة، أثناء التشغيل في الخلفية.
أوضاع الواجهة الأمامية
Anchor link toبشكل افتراضي، يعرض Pushwoosh iOS SDK لافتة الإشعار عندما يكون التطبيق قيد التشغيل في الواجهة الأمامية.
يمكنك التحكم في هذا السلوك عن طريق تعيين العلامة المنطقية التالية في الكود الخاص بك (على سبيل المثال، في AppDelegate الخاص بك):
// Set false to disable foreground notifications, true to enable itPushwoosh.configure.showPushnotificationAlert = true// Set 0 to disable foreground notifications, 1 to enable it[[Pushwoosh configure] setShowPushnotificationAlert:0];مستوى التسجيل (Log level)
Anchor link toيدعم Pushwoosh iOS SDK مستويات التسجيل التالية:
NONE- لا توجد سجلات من SDK.ERROR- يعرض رسائل الخطأ فقط في وحدة التحكم.WARNING- يعرض التحذيرات بالإضافة إلى الأخطاء.INFO- يتضمن رسائل إعلامية (الإعداد الافتراضي).DEBUG- يتضمن معلومات تصحيح الأخطاء التفصيلية.
بشكل افتراضي، يتم تعيين مستوى التسجيل على INFO، مما يضمن أن SDK يوفر معلومات ذات صلة دون ازدحام وحدة تحكم المطور.
لتعديل مستوى التسجيل، قم بتحديث مفتاح Pushwoosh_LOG_LEVEL في ملف Info.plist الخاص بتطبيقك:
<key>Pushwoosh_LOG_LEVEL</key><string>YOUR_LOG_LEVEL</string>بدلاً من ذلك، يمكنك تغيير مستوى السجل باستخدام مقتطف الكود أدناه:
Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)استبدل YOUR_LOG_LEVEL بالمستوى المطلوب (على سبيل المثال، DEBUG أو ERROR).
UNNotificationCenterDelegate مخصص
Anchor link toإذا كنت ترغب في استخدام UNNotificationCenterDelegate الخاص بك (على سبيل المثال، للإشعارات المحلية)، يجب عليك إبلاغ Pushwoosh SDK بذلك للسلوك الصحيح. يمكنك القيام بذلك باستخدام طريقة addNotificationCenterDelegate:
Pushwoosh.configure.addNotificationCenterDelegate(my_delegate)[Pushwoosh.configure addNotificationCenterDelegate:my_delegate];بعد ذلك، قم بتنفيذ طرق UNNotificationCenterDelegate في المفوّض الخاص بك:
func userNotificationCenter( _ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) { // تعامل مع إشعارك completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // تعامل مع إشعارك completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // تعامل مع رسالتك completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // تعامل مع رسالتك completionHandler(); }}التهيئة الكسولة لـ Pushwoosh
Anchor link toتمنع علامة Pushwoosh_LAZY_INITIALIZATION التهيئة التلقائية لـ Pushwoosh SDK عند بدء تشغيل التطبيق. وهذا يسمح بمزيد من التحكم في وقت بدء خدمات Pushwoosh SDK.
عند تمكين هذه العلامة، لا يبدأ Pushwoosh SDK خدماته حتى يتم استدعاء طرق Pushwoosh iOS SDK بشكل صريح.
أضف الإدخال التالي إلى Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>حالات الاستخدام
-
التحكم في تهيئة SDK – تسمح علامة Pushwoosh_LAZY_INITIALIZATION بتأخير بدء تشغيل Pushwoosh SDK، مما يمنح مزيدًا من التحكم في وقت تنشيط خدمات الدفع.
-
تأجيل تفعيل الدفع – في بعض التطبيقات، يجب تهيئة إشعارات الدفع فقط في ظل ظروف محددة. يضمن تمكين هذه العلامة أن Pushwoosh SDK يبدأ فقط عند الطلب الصريح.
-
تكوين الدفع الخاص بالمستخدم – قد تتطلب بعض التطبيقات تخصيص إعدادات إشعارات الدفع بناءً على تفضيلات المستخدم أو إعدادات الحساب. مع التهيئة الكسولة، يبدأ Pushwoosh SDK فقط بعد تحديد التكوين المناسب.
القائمة الكاملة لخصائص Info.plist
Anchor link to| الخاصية | الوصف | القيم الممكنة |
|---|---|---|
Pushwoosh_APPID | يضبط معرّف تطبيق Pushwoosh لنسخة الإنتاج. | XXXXX-XXXXX النوع: String |
Pushwoosh_APPID_Dev | يضبط معرّف تطبيق Pushwoosh لنسخة التطوير. | XXXXX-XXXXX النوع: String |
Pushwoosh_SHOW_ALERT | يعرض تنبيه الإشعار في الواجهة الأمامية. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALERT_TYPE | يضبط نمط تنبيه الإشعار. | BANNER (افتراضي) / ALERT / NONE النوع: String |
Pushwoosh_BASEURL | يتجاوز عنوان URL الأساسي لخادم Pushwoosh. | https://cp.pushwoosh.com/json/1.3/ (افتراضي) النوع: String |
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSH | إذا كانت القيمة YES، فسيتم معالجة الروابط العميقة (Deep Links) المستلمة في الإشعارات الصامتة تلقائيًا. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | يسمح لـ SDK بإرسال طلبات الشبكة إلى خوادم Pushwoosh. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATA | يسمح لـ SDK بجمع وإرسال بيانات الجهاز (إصدار نظام التشغيل، والإعدادات المحلية، والطراز) إلى الخادم. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSION | يسمح لـ SDK بجمع وإرسال إصدار نظام تشغيل الجهاز إلى الخادم. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALE | يسمح لـ SDK بجمع وإرسال الإعدادات المحلية للجهاز إلى الخادم. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | يسمح لـ SDK بجمع وإرسال طراز الجهاز إلى الخادم. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_ALLOW_COLLECTING_SCREEN_NAME | يسمح لـ SDK بإرفاق اسم الشاشة الحالي بأحداث PW_ScreenOpen و PW_UserIdle و PW_ApplicationExit. | YES (افتراضي) / NO النوع: Boolean |
Pushwoosh_LOG_LEVEL | مستوى تسجيل Pushwoosh SDK. لمزيد من التفاصيل، راجع التحكم في مستوى السجل. | NONE / ERROR / WARNING / INFO (افتراضي) / DEBUG / VERBOSE النوع: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | يسمح لـ SDK بتتبع عمليات الشراء داخل التطبيق. مطلوب لـ Customer Journey Builder. | YES / NO (افتراضي) النوع: Boolean |
على المنصات التي لا يمكنها تحرير Info.plist (مثل Cordova، OutSystems)، استخدم المكافئ وقت التشغيل بدلاً من ذلك: Pushwoosh.configure.setAllowCollectingScreenName:.