إنشاء إشعارات تفاعلية لنظام iOS
قدم نظام iOS 8 الإشعارات التفاعلية، مما يسمح للمستخدمين باتخاذ إجراءات مباشرة من لافتة الإشعار. تقدم Pushwoosh الآن فئات iOS (iOS Categories)، مما يتيح لك إنشاء أزرار مخصصة داخل لوحة تحكم Pushwoosh. اعرف المزيد
واجهة برمجة التطبيقات (API)
Anchor link toعندما يستدعي تطبيقك registerDevice، تُرجع واجهة برمجة تطبيقات Pushwoosh استجابة تحتوي على قائمة بالفئات المتاحة مع معرفاتها وتفاصيل كل زر كما يلي:
{ "status_code": 200, "status_message": "OK", "response": { "iosCategories": [ { "categoryId": 65, "buttons": [ { "id": 0, "label": "Rate", "type": "1", "startApplication": 1 }, { "id": 1, "label": "Later", "type": "0", "startApplication": 0 } ] } ] }}هذه الفئات متاحة الآن على الجهاز، بحيث يمكن عرضها بشكل صحيح عند وصول رسالة وتطبيقك لا يعمل في الواجهة الأمامية.
لإرسال إشعارك مع فئة من Pushwoosh Journey، ما عليك سوى تحديدها في إعدادات منصة iOS أثناء إنشاء رسالتك. في حال كنت ترسل إشعاراتك عن بعد عبر واجهة برمجة تطبيقات Pushwoosh، في طلبات createMessage، يجب عليك استخدام المعلمة ios_category مع معرف الفئة المقابل كقيمة:
{ "categoryId": 65 // Optional. String value. iOS8 category ID from Pushwoosh}عند وصول رسالة إشعار تحتوي على معرف فئة، يعرض Pushwoosh SDK الإشعار مع مجموعة الأزرار التي تحتوي عليها هذه الفئة.
الأزرار والإجراءات في Pushwoosh iOS SDK
Anchor link toلتنفيذ إجراءات مختلفة عند فتح التطبيق، يجب عليك إنشاء تنفيذ مخصص لـ UNUserNotificationCenterDelegate وتجاوز (override) التابع didReceiveNotificationResponse الخاص به:
CustomDelegate
Anchor link toclass CustomDelegate: NSObject, UNUserNotificationCenterDelegate { func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { let identifier = response.actionIdentifier let category = response.notification.request.content.categoryIdentifier
if category == "10212" { if identifier == "1" { // DO SOMETHING } else { // DO SOMETHING ELSE } }
completionHandler() }}حيث identifier هو معرف الزر، و category مشتق من حمولة الإشعار (notification payload).
بعد ذلك، قم بإنشاء نسخة من هذا الصنف ومررها إلى Pushwoosh SDK باستخدام التابع الوكيل (proxy method):
AppDelegate
Anchor link tofunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { Pushwoosh.sharedInstance().registerForPushNotifications()
let customDelegate = CustomDelegate() Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(customDelegate)
return true}