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 Action در نمایش فشرده به صورت آیکون-دکمه و در حالت بسطه به صورت دکمه‌های متنی نمایش داده می‌شوند. در iOS، اقدامات با فشار دادن طولانی بر اعلان یا سوایپ به چپ نمایان می‌شوند. هر پلتفرم توصیه‌های مخصوص خود را برای تعداد اقدامات دارد — Android حداکثر 3 و iOS حداکثر 4 را توصیه می‌کند.

پلتفرمحداکثر اقداماتروش نمایشانواع اقدامات
Android3آیکون‌ها + متندکمه‌ها، ورود متن
iOS4فشار طولانی / سوایپدکمه‌ها، ورود متن

Notification Action در Android

در Android، Notification Action از طریق 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 پردازش کنید تا ترتاز UI مسدود نشود.

Notification Action در iOS

در iOS، Notification Action از طریق چارچوب 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 از گزینه .foreground در UNNotificationAction استفاده می‌شود. برای اقداماتی که نیازمند رابط کامل هستند استفاده می‌شود، مانند مشاهده جزئیات سفارش.

اقدامات پس‌زمینه

اقداماتی که بدون باز کردن برنامه انجام می‌شوند. در Android از PendingIntent.getBroadcast() یا PendingIntent.getService() استفاده می‌شود. در iOS — گزینه .authenticationRequired یا بدون .foreground. نمونه‌ها: علامت زدن وظیفه به عنوان انجام شده، لایک پست، افزودن به علاقه‌مندی‌ها.

ورود متن

به کاربر اجازه می‌دهد متن را مستقیماً در اعلان وارد کند. در 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 Action در صفحه قفل کار می‌کند؟

بله، اگر اعلان در صفحه قفل نمایش داده شود و فلاگ 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 از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید