Notification Action في التطبيقات المحمولة: ما هو، أنواعه وإعداده

المؤلف: IT Sectr نُشر: 2026-03-21 وقت القراءة: 8 دق

Notification Action — أزرار تفاعلية وحقول إدخال تظهر مباشرة في الإشعار الفوري وتسمح للمستخدم بتنفيذ إجراء دون فتح التطبيق. هذا عنصر رئيسي في تجربة المستخدم، يختصر المسار إلى الشاشة المستهدفة. وفقًا لـ Android Developers, 2025، Notification Action يزيد من مشاركة المستخدمين بنسبة تصل إلى 40% عن طريق تقليل الاحتكاك في التفاعل.

الملامح الرئيسية

  • Notification Action — عنصر تفاعلي في الإشعارات الفورية لتنفيذ المهام بسرعة.
  • على Android، يتم تنفيذ الإجراءات عبر PendingIntent و NotificationCompat.Action.Builder.
  • على iOS، يتم تكوين الإجراءات عبر UNNotificationAction و UNNotificationCategory.
  • مدعومة: أزرار، إدخال نص، تعليم كمكتمل وإجراءات مؤجلة.
  • يجب معالجة كل إجراء في استدعاء التطبيق عند النقر.

ما هو Notification Action

Notification Action هو عنصر تفاعلي في الواجهة يضاف إلى الإشعار الفوري لتنفيذ إجراء معين. يمكن للمستخدم الرد على رسالة، تأكيد مهمة أو فتح شاشة معينة دون الدخول إلى التطبيق. تظهر الإجراءات كأزرار أسفل نص الإشعار أو في عرض موسع عند التمرير.

لماذا نحتاج إلى إجراءات في الإشعارات

الهدف الرئيسي من Notification Action هو تقليل عدد الخطوات اللازمة لتحقيق هدف المستخدم. بدلاً من فتح التطبيق والتنقل إلى الشاشة المطلوبة، يضغط المستخدم على زر واحد. تظهر الأبحاث أن التطبيقات ذات الإشعارات التفاعلية تظهر مشاركة أعلى بنسبة 25–40% مقارنة بالإشعارات البسيطة.

التمثيل البصري على منصات مختلفة

على Android، تظهر Notification Actions كأزرار أيقونات في العرض المضغوط وأزرار نصية في الوضع القابل للتوسيع. على iOS، تظهر الإجراءات عند الضغط المطول على الإشعار أو التمرير لليسار. كل منصة لها توصياتها الخاصة بعدد الإجراءات — Android يوصي بما لا يزيد عن 3، iOS بما لا يزيد عن 4.

المنصةالحد الأقصى للإجراءاتطريقة العرضأنواع الإجراءات
Android3أيقونات + نصأزرار، إدخال نص
iOS4ضغط مطول / تمريرأزرار، إدخال نص

Notification Action على Android

على Android، يتم إنشاء Notification Actions عبر NotificationCompat.Builder باستخدام طريقة addAction(). يحتوي كل إجراء على أيقونة ونص و PendingIntent يتم تشغيله عند النقر. بدءًا من Android 7.0 (API 24)، يتم دعم إدخال النص المباشر عبر RemoteInput.

إنشاء إجراء أساسي

لإنشاء زر في الإشعار، يجب تعريف PendingIntent سيتم تشغيله عند النقر. يمكن لـ PendingIntent فتح Activity أو تشغيل Service أو BroadcastReceiver. يجب أن تكون أيقونة الإجراء أحادية اللون وتتوافق مع Material Design.

kotlin
val acceptIntent = Intent(context, AcceptActionReceiver::class.java)
acceptIntent.putExtra("notification_id", notificationId)

val acceptPendingIntent = PendingIntent.getBroadcast(
    context, requestCode,
    acceptIntent, PendingIntent.FLAG_UPDATE_CURRENT
)

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("طلب تأكيد")
    .setContentText("يرجى تأكيد إنجاز المهمة")
    .addAction(R.drawable.ic_accept, "تأكيد", acceptPendingIntent)
    .build()

إجراء مع إدخال نص (RemoteInput)

للسيناريوهات التي تتطلب إدخال نص (مثل الرد على رسالة)، يوفر Android RemoteInput. يقوم المستخدم بإدخال النص مباشرة في الإشعار، ويتلقاه التطبيق دون فتح Activity. RemoteInput مدعوم على Android 7.0+ ويتطلب معالجة صريحة في BroadcastReceiver أو Service.

kotlin
val remoteInput = RemoteInput.Builder("reply_input")
    .setLabel("أدخل الرد")
    .build()

val replyAction = NotificationCompat.Action.Builder(
    R.drawable.ic_reply, "رد", replyPendingIntent
)
    .addRemoteInput(remoteInput)
    .build()

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .addAction(replyAction)
    .build()

معالجة الإجراءات على Android

عند النقر على إجراء، يقوم النظام بتشغيل PendingIntent المحدد. لاسترجاع النص المدخل عبر RemoteInput، استدع RemoteInput.getResultsFromIntent(intent). يوصى بمعالجة الإجراءات في IntentService أو WorkManager لتجنب حظر سلسلة واجهة المستخدم.

Notification Action على iOS

على iOS، يتم تنفيذ Notification Actions عبر إطار UserNotifications. يقوم المطور بإنشاء فئات الإجراءات (UNNotificationCategory) وتسجيلها عند بدء التطبيق. يتم تعريف كل إجراء بواسطة كائن UNNotificationAction بمعرف فريد.

إعداد الفئات والإجراءات على iOS

لإضافة إجراءات إلى الإشعارات الفورية على iOS، يجب إنشاء فئة تجمع الإجراءات ذات الصلة. يتم تحديد الفئة في حمولة الإشعار عبر حقل category. عند استلام إشعار، يعرض النظام الإجراءات المتاحة من الفئة المحددة.

swift
import UserNotifications

class NotificationSetup {

    func registerNotificationCategories() {
        let approveAction = UNNotificationAction(
            identifier: "APPROVE_ACTION",
            title: "موافقة",
            options: [.foreground]
        )

        let declineAction = UNNotificationAction(
            identifier: "DECLINE_ACTION",
            title: "رفض",
            options: [.destructive]
        )

        let category = UNNotificationCategory(
            identifier: "REQUEST_CATEGORY",
            actions: [approveAction, declineAction],
            intentIdentifiers: [],
            options: []
        )

        UNUserNotificationCenter.current()
            .setNotificationCategories([category])
    }
}

معالجة الإجراءات على iOS

عندما ينقر المستخدم على إجراء، يقوم النظام باستدعاء طريقة userNotificationCenter:didReceiveNotificationResponse في مفوض UNUserNotificationCenter. يحتوي response.actionIdentifier على معرف الإجراء المنفذ. لإدخال النص، يتم استخدام UNTextInputNotificationAction الذي يوفر النص الذي أدخله المستخدم.

swift
extension AppDelegate: UNUserNotificationCenterDelegate {

    func userNotificationCenter(
        center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void
    ) {
        switch response.actionIdentifier {
        case "APPROVE_ACTION":
            Log.d("Action: approved")
        case "DECLINE_ACTION":
            Log.d("Action: declined")
        case UNNotificationDefaultActionIdentifier:
            Log.d("Action: opened app")
        default:
            break
        }
        completionHandler()
    }
}

أنواع وسيناريوهات Notification Action

Notification Action يُصنف حسب نوع التفاعل وسيناريو الاستخدام. يؤثر الاختيار الصحيح لنوع الإجراء مباشرة على تجربة المستخدم والتحويل إلى الإجراء المستهدف.

أزرار مع فتح التطبيق

النوع الأكثر شيوعًا — زر يفتح التطبيق على شاشة معينة. على Android، يُستخدم PendingIntent.getActivity()، على iOS — الخيار .foreward من UNNotificationAction. يُستخدم للإجراءات التي تتطلب واجهة كاملة، مثل عرض تفاصيل الطلب.

إجراءات الخلفية

إجراءات يتم تنفيذها دون فتح التطبيق. على Android، يُستخدم PendingIntent.getBroadcast() أو PendingIntent.getService(). على iOS — الخيار .authenticationRequired أو بدون .foreward. أمثلة: تعليم مهمة كمكتملة، إعجاب بمنشور، إضافة إلى المفضلة.

إدخال نص

يسمح للمستخدم بإدخال نص مباشرة في الإشعار. على Android، يُنفذ عبر RemoteInput، على iOS — عبر UNTextInputNotificationAction. يُستخدم للرد على الرسائل والتعليقات وإدخال رموز التأكيد لمرة واحدة.

الإجراءات التدميرية

إجراءات تغير البيانات بشكل لا رجعة فيه — حذف، رفض، حظر. على Android، يتم تمييزها بصريًا (لون أحمر في بعض الأنظمة)، على iOS تتطلب الخيار .destructive. يُوصى بطلب تأكيد للإجراءات التدميرية، مثلاً عبر حوار إضافي أو نقرة ثانية.

إجراءات الإدخال مع إدخال نص

فئة منفصلة من الإجراءات — إدخال نص مباشرة من الإشعار. على Android، يُنفذ عبر RemoteInput مع PendingIntent. على iOS، يُستخدم UNTextInputNotificationAction الذي يرث من UNNotificationAction. تُستخدم هذه الإجراءات للردود السريعة في المراسلة، إدخال الرموز الترويجية، ملء نماذج الملاحظات أو تقييم جودة الخدمة. يتم تمرير النص المدخل إلى التطبيق مع معرف الإجراء. للمعالجة الصحيحة لإدخال النص على كلا المنصتين، من الضروري تنفيذ تحليل البيانات المدخلة والتحقق منها قبل تنفيذ الإجراء المستهدف.

معالجة النقرات والتسجيل

المعالجة الصحيحة لـ Notification Action ضرورية للتحليلات وتجربة المستخدم. يجب تسجيل كل نقرة وتنفيذ الإجراء بشكل موثوق حتى لو كان التطبيق مغلقًا.

التحليلات والتتبع

تتبع كل نقرة على Notification Action من خلال نظام التحليلات الخاص بك. Firebase Analytics أو Mixpanel أو Yandex.Metrica تسمح بتسجيل معرف الإجراء ووقت النقر وسياق الإشعار. تساعد هذه البيانات في تحسين استراتيجية الإشعارات وزيادة المشاركة. يساعد الاختبار A/B مع مجموعات مختلفة من الإجراءات في تحديد سيناريوهات التفاعل الأكثر فعالية مع المستخدم.

معالجة موثوقة عند إغلاق التطبيق

إذا كان التطبيق مغلقًا، لا يزال النظام يسلم Intent أو UNNotificationResponse عند النقر على إجراء. على Android، استخدم BroadcastReceiver لمعالجة مضمونة. على iOS، يقوم النظام بتشغيل التطبيق في الخلفية ويمرر الرد إلى المفوض. للإجراءات الحرجة (تأكيد الدفع، التفويض)، أضف آلية إعادة محاولة وأبلغ المستخدم بالإتمام الناجح.

تخصيص مرئي للأزرار على Android

بدءًا من Android 7.0، يمكن للمطور التأثير على مظهر Notification Action من خلال الأيقونات والألوان. يجب أن تكون الأيقونات أحادية اللون (قناة ألفا)، بحجم 24x24 dp. على iOS، تخصيص الأزرار محدود — تُستخدم ألوان وخطوط النظام. Material Design يوصي بتجميع الإجراءات حسب الأولوية: الإجراء الأكثر أهمية أولاً، والتدميرية أخيرًا.

الأسئلة الشائعة

كم عدد الإجراءات التي يمكن إضافتها إلى إشعار واحد؟

Android يوصي بما لا يزيد عن 3 إجراءات، iOS — حتى 4. تجاوز الحد يؤدي إلى عدم عرض بعض الإجراءات أو إخفائها في قائمة فرعية.

كيفية إضافة أيقونة لـ Notification Action على Android؟

يتم تمرير الأيقونة في NotificationCompat.Action.Builder كمورد drawable. يجب أن تكون الأيقونة أحادية اللون (قناة ألفا)، بحجم 24x24 dp وتتوافق مع إرشادات Material Design.

هل تعمل Notification Actions على الشاشة المقفلة؟

نعم، إذا كان الإشعار يظهر على الشاشة المقفلة وتم تعيين علامة visibility إلى VISIBILITY_PUBLIC. على iOS، مطلوب الخيار .authenticationRequired للإجراءات التي تتطلب تفويضًا.

كيفية معالجة نقرة على إجراء إذا تم إزالة التطبيق من الذاكرة؟

على Android، يعيد النظام إنشاء العملية ويوصل Intent. على iOS، يقوم النظام بتشغيل التطبيق في الخلفية. يمكن ضمان التسليم باستخدام BroadcastReceiver على Android و UNNotificationServiceExtension على iOS.

كيف تختلف تجربة المستخدم للإجراءات بين Android و iOS؟

على Android، تكون الإجراءات مرئية مباشرة أسفل الإشعار كأيقونات. على iOS، تكون الإجراءات مخفية خلف ضغط مطول أو تمرير. تصميم UX للإشعارات يجب أن يراعي هذه الاختلافات بين المنصات.

الخلاصة

  • Notification Action — أزرار وحقول إدخال في الإشعارات الفورية للتفاعل السريع.
  • على Android، تُنشأ الإجراءات عبر NotificationCompat.Action مع PendingIntent.
  • على iOS، تُعرف الإجراءات عبر UNNotificationAction مع تسجيل الفئة.
  • إدخال النص يُنفذ عبر RemoteInput (Android) أو UNTextInputNotificationAction (iOS).
  • الحد الأقصى لعدد الإجراءات — 3 لـ Android، 4 لـ iOS.
  • يجب تسجيل كل إجراء في نظام تحليلات لتحسين الإشعارات.
  • لمعالجة موثوقة، استخدم BroadcastReceiver على Android و AppDelegate على iOS.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا