انتقل إلى المحتوى

إنشاء إشعارات iOS التفاعلية

قدم نظام iOS 8 الإشعارات التفاعلية، مما يسمح للمستخدمين باتخاذ إجراءات مباشرة من لافتة الإشعار. تقدم Pushwoosh الآن فئات iOS، مما يتيح لك إنشاء أزرار مخصصة داخل لوحة تحكم Pushwoosh. اعرف المزيد

عندما يستدعي تطبيقك registerDevice، تُرجع Pushwoosh API استجابة تحتوي على قائمة بالفئات المتاحة مع معرفاتها وتفاصيل كل زر كما يلي:

{
"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 API، في طلبات 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 to
class 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 مشتق من حمولة الإشعار.

بعد ذلك، قم بإنشاء نسخة من هذه الفئة ومررها إلى Pushwoosh SDK باستخدام طريقة الوكيل (proxy method):

AppDelegate

Anchor link to
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Pushwoosh.sharedInstance().registerForPushNotifications()
let customDelegate = CustomDelegate()
Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(customDelegate)
return true
}
إشعار iOS تفاعلي مع أزرار إجراءات مخصصة معروضة في لافتة الإشعار