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

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

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

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

{
"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
}
]
}
]
}
}

هذه الفئات (Categories) متاحة الآن على الجهاز، بحيث يمكن عرضها بشكل صحيح عند وصول رسالة وتطبيقك لا يعمل في المقدمة.

لإرسال إشعارك مع فئة من Pushwoosh Journey، ما عليك سوى تحديدها في إعدادات منصة iOS أثناء إنشاء رسالتك. في حال كنت ترسل إشعاراتك عن بعد عبر Pushwoosh API، في طلبات createMessage يجب عليك استخدام المعلمة ios_category مع معرف الفئة (Category ID) المقابل كقيمة:

{
"categoryId": 65 // اختياري. قيمة نصية. معرف فئة iOS8 من Pushwoosh
}

عندما تصل رسالة إشعار تحتوي على معرف فئة (category ID)، يعرض 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.configure.registerForPushNotifications()
let customDelegate = CustomDelegate()
Pushwoosh.configure.addNotificationCenterDelegate(customDelegate)
return true
}
إشعار iOS تفاعلي مع أزرار إجراءات مخصصة معروضة في بانر الإشعار