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

إنشاء إشعارات تفاعلية لنظام 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 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 مشتق من حمولة الإشعار (notification payload).

بعد ذلك، قم بإنشاء نسخة من هذا الصنف ومررها إلى 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 مع أزرار إجراءات مخصصة معروضة في لافتة الإشعار