Interactive Notification — یک اطلاعرسانی پش با عناصر تعاملی است که به شما اجازه میدهد بدون باز کردن برنامه عملی انجام دهید. به گزارش Apple Human Interface Guidelines (2025)، چنین اطلاعرسانیهایی تعداد مراحل تا عمل هدف را 40% کاهش میدهند. دکمههای عملیات و فیلدهای ورود به کاربر امکان پاسخ به پیام، پرداخت اشتراک یا تایید رزرو را مستقیماً از پنل اطلاعرسانی، بدون باز کردن برنامه، فراهم میکند.
نکات کلیدی
Interactive Notification — یک فرمت پیشرفته اطلاعرسانی پش است که شامل عناصر کنترلی تعاملی مانند دکمهها، کلیدها و فیلدهای ورود متن است. بر خلاف اطلاعرسانی استاندارد که فقط اطلاع میدهد، اطلاعرسانی تعاملی به کاربر امکان میدهد عمل مورد نظر را مستقیماً از پنل یا صفحه قفل انجام دهد. به گزارش Google Material Design (2025)، اطلاعرسانیهای تعاملی توسط سیستمعامل بدون راهاندازی فرآیند اصلی برنامه پردازش میشوند — این باطری صرفهجویی میکند و پاسخگویی را سریعتر میکند. توسعهدهنده از طریق کتگوریها در iOS و کانالها در Android مجموعه عملیات را تعیین میکند، و سیستم آنها را بسته به سیاق نمایش میدهد.
هر اطلاعرسانی تعاملی از سه سطح تشکیل شده است: محتوای اصلی (عنوان، متن)، عملیات (دکمهها) و ورود متن اختیاری. در iOS این مؤلفهها از طریق UNNotificationCategory و در Android از طریق NotificationCompat.Action.Builder ترکیب میشوند. سیستم دکمهها را در زیر متن اطلاعرسانی به صورت جمعشده یا باز بسته بسته به نسخه سیستمعامل و طول متن نمایش میدهد. کاربر بلافاصله پس از دریافت اطلاعرسانی عملیات موجود را میبیند و میتواند یکی از آنها را بدون مراجعه به برنامه انجام دهد.
مکانیزم کاری Interactive Notification به دو فاز تقسیم میشود: ثبت کتگوریها در زمان راهاندازی برنامه و پردازش عملیات پس از کلیک کاربر. در مرحله ثبت، توسعهدهنده اشیای کتگوری با مجموعهای از عملیات ایجاد میکند — هر عملیات یک شناسه، عنوان و گزینهها دارد. پس از دریافت اطلاعرسانی پش، سیستم آن را با کتگوری ثبتشده توسط فیلد categoryIdentifier مطابق میدهد و به طور خودکار دکمههای مناسب را اضافه میکند. وقتی کاربر دکمهای را فشار میدهد، سیستم دلگات UNUserNotificationCenter یا PendingIntent را در Android با شناسه عملیات فراخوان میکند و نتیجه را به برنامه برمیگرداند. به گزارش WWDC 2024، زمان پردازش عملیات تعاملی در iOS با پیکربندی مناسب از 200 میلیثانیه تجاوز نمیکند.
اطلاعرسانیهای تعاملی بر اساس روش تعامل به سه نوع اصلی تقسیم میشوند: دکمهای، متنی و چندرسانهای. هر نوع مسئله خود را حل میکند و در سناریوهای مشخصی استفاده میشود. انتخاب نوع بسته به سیاق است — هر چه مراحل کمتری از کاربر بخواهد، نرخ تبدیل بالاتر است. Apple و Google توصیه میکنند از دکمهها برای تایید، از فیلد ورود برای پاسخها و از رسانه برای پیشنمایش محتوا استفاده کنید.
متداولترین نوع — اطلاعرسانی با یک یا چند دکمه، که هر کدام عملی از پیش تعیینشده را انجام میدهد. به عنوان مثال، دکمههای «قبول» و «رد» برای رویداد تقویم، «پسند» و «پاسخ» برای پیام. iOS تا چهار دکمه و Android تا سه دکمه را پشتیبانی میکند. دکمهها را میتوان بر اساس اولویت گروهبندی کرد: عادی و تخریبی (نیازمند تایید). Apple برای رحاتی کاربر در صفحه قفل بیش از دو دکمه اصلی را توصیه نمیکند.
RemoteInput — فناوری است که به کاربر اجازه میدهد مستقیماً در اطلاعرسانی متن وارد کند بدون باز کردن برنامه. در iOS از UNTextInputNotificationAction و در Android از RemoteInput.Builder با یک کلید برای استخراج متن واردشده استفاده میشود. بیشتر در پیامرسانها برای پاسخ سریع به پیام استفاده میشود. متن واردشده از طریق سرویس اطلاعرسانی یا تنظیمکننده محلی به برنامه منتقل میشود. محدودیت — متن نمیتواند شامل فرمتبندی باشد، فقط رشته ساده.
اطلاعرسانیهای با پیوستهای چندرسانهای تصاویر، صدا و ویدیو را مستقیماً در پنل نمایش میدهند. در iOS این از طریق UNNotificationAttachment و در Android از طریق NotificationCompat.MessagingStyle با BigPictureStyle پیاده میشود. محتوای چندرسانهای توسط سرور ارائهدهنده پش بارگیری شده و همراه با اطلاعرسانی به عنوان پیوست ارسال میشود. اندازه پیوست محدود است — Apple حداکثر 10 مگابایت و Google حداکثر 1 مگابایت برای تصاویر را توصیه میکند. محتوای چندرسانهای اطلاعرسانیها را برای اخبار، فروشگاهها و شبکههای اجتماعی اطلاعرسانتر میکند.
در iOS، Interactive Notification از طریق چارچوب UserNotifications با استفاده از UNNotificationCategory و UNNotificationAction پیاده میشود. برنامه کتگوریها را در زمان راهاندازی ثبت میکند، و پس از دریافت اطلاعرسانی، سیستم به طور خودکار دکمههای مناسب را نمایش میدهد. برای پردازش عملیات، پیادهسازی روش userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler ضروری است. در زیر یک مثال ثبت کتگوری با دکمه و ورود متن در Swift آورده شده است.
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "پاسخ",
options: [.authenticationRequired],
textInputButtonTitle: "ارسال",
textInputPlaceholder: "پیام را وارد کنید..."
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
پس از فراخوان setNotificationCategories، سیستم کتگوریها را ذخیره میکند و آنها را برای همه اطلاعرسانیهای بعدی استفاده میکند. کد باید در هر راهاندازی برنامه فراخوان شود تا کتگوریها با نسخههای جدید همگام شوند. پردازش پاسخ در دلگات مرکز اطلاعرسانی انجام میشود — برنامه شناسه عملیات و متن واردشده را برای پردازش بیشتر دریافت میکند.
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completion: @escaping VoidBlock
) {
if response.actionIdentifier == "reply" {
let textResponse = response as! UNTextInputNotificationResponse
let message = textResponse.userText
sendMessage(message)
}
completion()
}
روش userNotificationCenter توسط سیستم پس از کلیک روی دکمه یا ارسال متن توسط کاربر فراخوان میشود. در داخل هندلر، actionIdentifier بررسی میشود — اگر با شناسه ثبتشده مطابقت داشته باشد، برنامه متن واردشده را از userText استخراج کرده و به سرور ارسال میکند. برای دکمههای عادی بدون ورود متن، از UNNotificationResponse بدون تبدیل استفاده میشود.
در Android، اطلاعرسانیهای تعاملی از طریق کلاس NotificationCompat با روشهای addAction و RemoteInput ایجاد میشوند. بر خلاف iOS، Android نیازی به ثبت قبلی کتگوریها ندارد — عملیات مستقیماً از طریق Builder به هر اطلاعرسانی اضافه میشوند. این انعطاف بیشتری ایجاد میکند: هر اطلاعرسانی میتواند مجموعه منحصر به فردی از دکمهها داشته باشد. در زیر یک مثال اطلاعرسانی با دکمه پاسخ در Java با استفاده از RemoteInput آورده شده است.
RemoteInput remoteInput = new RemoteInput.Builder("key_reply")
.setLabel("پاسخ")
.build();
PendingIntent replyIntent = PendingIntent.getBroadcast(
this, 1001,
new Intent("ACTION_REPLY"),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
R.drawable.ic_reply,
"پاسخ", replyIntent
)
.addRemoteInput(remoteInput)
.build();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, "messages")
.setContentTitle("پیام جدید")
.setContentText("سلام! چطوری؟")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
عنصر کلیدی RemoteInput است که فیلد ورود را به عملیات متصل میکند. با فشار دکمه «پاسخ»، سیستم یک کادر ورود متن را در داخل اطلاعرسانی باز میکند. پس از ارسال، متن از طریق Intent به BroadcastReceiver یا Activity مطابق با PendingIntent مشخصشده منتقل میشود. برای دریافت متن در گیرنده، از RemoteInput.getResultsFromIntent(intent) با کلید «key_reply» استفاده میشود.
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
روش getResultsFromIntent متن واردشده توسط کاربر را از Intent که توسط سیستم در زمان ارسال پاسخ ارسال شده، استخراج میکند. نتیجه به صورت CharSequence بازگردانده میشود که برای ارسال به سرور به رشته تبدیل میشود. اگر کاربر کادر ورود را بدون ارسال بسته باشد، results خالی خواهد بود — این باید در پردازش مد نظر قرار گیرد. این رویکرد پاسخ سریع را بدون راهاندازی Activity ممکن میسازد.
Interactive Notification در برنامههای هر نوعی که نیازمند عمل سریع کاربر هستند، استفاده میشود. موثرترین سناریوها — پیامرسانها برای پاسخ به پیام، تجارت الکترونیکی برای تایید سفارش و تقویمها برای پذیرش دعوت. به گزارش Localytics (2025)، برنامههای با اطلاعرسانیهای تعاملی در روز هفتم 28% retention بالاتری نشان میدهند. در زیر جدولی با سناریوهای محبوب و ویژگیهای سطح پلتفرم آورده شده است.
| سناریو | عملیات | پلتفرم |
|---|---|---|
| پیامرسان | پاسخ متنی، پسند | iOS + Android |
| تجارت الکترونیکی | تایید، به تعویق افتادن، لغو | iOS + Android |
| تقویم | قبول، رد، شاید | iOS |
| اخبار | ذخیره، اشتراک گذاری، باز کردن | Android |
| رزرو | تایید، تغییر زمان، لغو | iOS + Android |
در طراحی اطلاعرسانیهای تعاملی مهم است محدودیت را در نظر بگیرید — کاربر فقط یک بار میتواند عملیات را انجام دهد. پس از کلیک روی دکمه، اطلاعرسانی ناپدید میشود یا به وضعیت «انجام شده» میرود. بنابراین، هر عملیات باید غیرقابل برگشت باشد یا در مرحله دوم تایید بخواهد.
سوالات متداول
Interactive Notification — یک اطلاعرسانی پش با دکمهها، فیلد ورود یا پیوست چندرسانهای است که به کاربر اجازه میدهد بدون باز کردن برنامه عملی انجام دهد. در iOS از طریق UserNotifications و در Android از طریق NotificationCompat پشتیبانی میشود.
اطلاعرسانی عادی فقط اطلاع میدهد — کاربر کلیک میکند و برنامه را باز میکند. اطلاعرسانی تعاملی شامل دکمهها یا فیلد ورود است و عملیات مستقیماً در پنل انجام میشود. این مسیر را تا عمل هدف کوتاه کرده و بار برنامه را کاهش میدهد.
در iOS تا چهار دکمه و در Android تا سه دکمه پشتیبانی میشود. در Android، دو دکمه در پنل اطلاعرسانی نمایش داده میشوند و سومینی در منوی کشودنی قابل دسترس است. Apple برای رحاتی کاربر در صفحه قفل بیش از دو دکمه اصلی را توصیه نمیکند.
در iOS از UNTextInputNotificationAction و در Android از RemoteInput.Builder با یک کلید استفاده میشود. کاربر متن را در یک کادر محاوره داخل اطلاعرسانی وارد میکند، و برنامه آن را از طریق دلگات یا Intent بدون راهاندازی Activity دریافت میکند.
دریافت اطلاعرسانی پش نیازمند اتصال اینترنت است، اما خود تعامل (نمایش دکمهها، ورود متن) بدون اینترنت کار میکند. انتقال نتیجه به سرور میتواند تا برقراری مجدد اتصال به تعویق بیفتد.
نتیجه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید