Notification Action — انٹرایکٹو بٹن اور ان پٹ فیلڈز جو براہ راست پش نوٹیفکیشن میں ظاہر ہوتے ہیں اور صارف کو ایپ کھولے بغیر کارروائی کرنے کی اجازت دیتے ہیں۔ یہ صارف کے تجربے کا ایک اہم عنصر ہے، جو ہدف اسکرین تک کے راستے کو مختصر کرتا ہے۔ Android Developers, 2025 کے مطابق، Notification Action تعامل میں رگڑ کو کم کرکے صارف کی مصروفیت کو 40% تک بڑھاتا ہے۔
اہم نکات
Notification Action ایک انٹرایکٹو انٹرفیس عنصر ہے جو کسی مخصوص عمل کو انجام دینے کے لیے پش نوٹیفکیشن میں شامل کیا جاتا ہے۔ صارف ایپ میں داخل ہوئے بغیر کسی پیغام کا جواب دے سکتا ہے، کسی کام کی تصدیق کر سکتا ہے یا کوئی مخصوص اسکرین کھول سکتا ہے۔ اعمال نوٹیفکیشن کے متن کے نیچے بٹن کے طور پر یا سوائپ کرنے پر توسیعی منظر میں ظاہر ہوتے ہیں۔
Notification Action کا بنیادی مقصد صارف کے اپنے ہدف تک پہنچنے کے لیے اقدامات کی تعداد کو کم کرنا ہے۔ ایپ کھولنے اور مطلوبہ اسکرین پر جانے کے بجائے، صارف ایک بٹن دباتا ہے۔ تحقیق سے پتہ چلتا ہے کہ انٹرایکٹو نوٹیفکیشنز والی ایپس سادہ نوٹیفکیشنز کے مقابلے میں 25–40% زیادہ مصروفیت ظاہر کرتی ہیں۔
Android پر، Notification Action کمپیکٹ ویو میں آئیکن بٹن اور توسیع پذیر موڈ میں ٹیکسٹ بٹن کے طور پر ظاہر ہوتے ہیں۔ iOS پر، نوٹیفکیشن پر لمبا دباؤ یا بائیں سوائپ کرنے پر اعمال ظاہر ہوتے ہیں۔ ہر پلیٹ فارم کے اعمال کی تعداد کے لیے اپنی سفارشات ہیں — Android زیادہ سے زیادہ 3، iOS زیادہ سے زیادہ 4 تجویز کرتا ہے۔
| پلیٹ فارم | زیادہ سے زیادہ اعمال | ظاہر کرنے کا طریقہ | اعمال کی اقسام |
|---|---|---|---|
| Android | 3 | آئیکن + متن | بٹن، ٹیکسٹ ان پٹ |
| iOS | 4 | لمبا دباؤ / سوائپ | بٹن، ٹیکسٹ ان پٹ |
Android پر، Notification Action NotificationCompat.Builder استعمال کرتے ہوئے addAction() طریقہ سے بنائے جاتے ہیں۔ ہر عمل میں ایک آئیکن، متن اور PendingIntent ہوتا ہے جو ٹیپ کرنے پر متحرک ہوتا ہے۔ Android 7.0 (API 24) سے، RemoteInput کے ذریعے براہ راست ٹیکسٹ ان پٹ معاون ہے۔
نوٹیفکیشن میں بٹن بنانے کے لیے، ایک PendingIntent کی وضاحت کرنا ضروری ہے جو ٹیپ کرنے پر لانچ ہوگا۔ PendingIntent ایک Activity کھول سکتا ہے، Service یا BroadcastReceiver شروع کر سکتا ہے۔ عمل کا آئیکن یک رنگی اور Material Design کے مطابق ہونا چاہیے۔
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()
ایسے منظرناموں کے لیے جن میں ٹیکسٹ ان پٹ کی ضرورت ہے (مثال کے طور پر، پیغام کا جواب دینا)، Android RemoteInput فراہم کرتا ہے۔ صارف براہ راست نوٹیفکیشن میں متن درج کرتا ہے، اور ایپ Activity کھولے بغیر اسے وصول کرتی ہے۔ RemoteInput Android 7.0+ پر معاون ہے اور BroadcastReceiver یا Service میں واضح ہینڈلنگ کی ضرورت ہے۔
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()
جب کسی عمل کو ٹیپ کیا جاتا ہے، نظام مخصوص PendingIntent کو لانچ کرتا ہے۔ RemoteInput کے ذریعے درج کردہ متن حاصل کرنے کے لیے، RemoteInput.getResultsFromIntent(intent) کال کریں۔ UI تھریڈ کو بلاک کرنے سے بچنے کے لیے IntentService یا WorkManager میں اعمال کو ہینڈل کرنے کی سفارش کی جاتی ہے۔
iOS پر، Notification Action UserNotifications فریم ورک کے ذریعے نافذ کیا جاتا ہے۔ ڈویلپر اعمال کے زمرے (UNNotificationCategory) بناتا ہے اور ایپ لانچ پر انہیں رجسٹر کرتا ہے۔ ہر عمل ایک منفرد شناخت کنندہ کے ساتھ UNNotificationAction آبجیکٹ سے متعین ہوتا ہے۔
iOS پر پش نوٹیفکیشنز میں اعمال شامل کرنے کے لیے، ایک زمرہ بنانا ضروری ہے جو متعلقہ اعمال کو گروپ کرے۔ زمرہ نوٹیفکیشن پے لوڈ میں category فیلڈ کے ذریعے مخصوص کیا جاتا ہے۔ نوٹیفکیشن موصول ہونے پر، نظام مخصوص زمرے سے دستیاب اعمال ظاہر کرتا ہے۔
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])
}
}
جب صارف کسی عمل کو ٹیپ کرتا ہے، نظام UNUserNotificationCenter کے ڈیلیگیٹ میں userNotificationCenter:didReceiveNotificationResponse طریقہ کال کرتا ہے۔ response.actionIdentifier میں انجام دیے گئے عمل کا شناخت کنندہ ہوتا ہے۔ ٹیکسٹ ان پٹ کے لیے، UNTextInputNotificationAction استعمال کیا جاتا ہے، جو صارف کے درج کردہ متن فراہم کرتا ہے۔
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 کو تعامل کی قسم اور استعمال کے منظرنامے کے مطابق درجہ بندی کیا جاتا ہے۔ عمل کی قسم کا صحیح انتخاب براہ راست صارف کے تجربے اور ہدف کے عمل میں تبدیلی کو متاثر کرتا ہے۔
سب سے عام قسم — ایک بٹن جو ایپ کو کسی مخصوص اسکرین پر کھولتا ہے۔ Android پر، PendingIntent.getActivity() استعمال کیا جاتا ہے، iOS پر — UNNotificationAction کا .foreground آپشن۔ مکمل انٹرفیس کی ضرورت والے اعمال کے لیے استعمال کیا جاتا ہے، جیسے آرڈر کی تفصیلات دیکھنا۔
اعمال جو ایپ کھولے بغیر انجام پاتے ہیں۔ Android پر، PendingIntent.getBroadcast() یا PendingIntent.getService() استعمال کیا جاتا ہے۔ iOS پر — .authenticationRequired آپشن یا .foreground کے بغیر۔ مثالیں: کام کو مکمل شدہ نشان زد کرنا، پوسٹ کو پسند کرنا، پسندیدہ میں شامل کرنا۔
صارف کو براہ راست نوٹیفکیشن میں متن درج کرنے کی اجازت دیتا ہے۔ Android پر، RemoteInput کے ذریعے نافذ کیا جاتا ہے، iOS پر — UNTextInputNotificationAction کے ذریعے۔ پیغامات کے جواب، تبصرے، ایک بار کے تصدیقی کوڈ درج کرنے کے لیے استعمال کیا جاتا ہے۔
اعمال جو ڈیٹا کو ناقابل واپسی طور پر تبدیل کرتے ہیں — حذف کرنا، مسترد کرنا، مسدود کرنا۔ Android پر، وہ بصری طور پر نمایاں ہوتے ہیں (کچھ سسٹمز میں سرخ رنگ)، iOS پر انہیں .destructive آپشن کی ضرورت ہوتی ہے۔ تباہ کن اعمال کے لیے تصدیق طلب کرنے کی سفارش کی جاتی ہے، مثال کے طور پر اضافی ڈائیلاگ یا دوسرے ٹیپ کے ذریعے۔
اعمال کا ایک علیحدہ طبقہ — نوٹیفکیشن سے براہ راست متن درج کرنا۔ Android پر، یہ PendingIntent کے ساتھ RemoteInput کے ذریعے نافذ کیا جاتا ہے۔ iOS پر، UNTextInputNotificationAction استعمال کیا جاتا ہے، جو UNNotificationAction سے وراثت پاتا ہے۔ ایسے اعمال میسنجر میں فوری جوابات، پرومو کوڈز درج کرنے، فیڈ بیک فارم بھرنے یا سروس کے معیار کی درجہ بندی کے لیے استعمال ہوتے ہیں۔ درج کردہ متن عمل کے شناخت کنندہ کے ساتھ ایپ کو بھیجا جاتا ہے۔ دونوں پلیٹ فارمز پر ٹیکسٹ ان پٹ کی درست ہینڈلنگ کے لیے، ہدف کے عمل کو انجام دینے سے پہلے درج کردہ ڈیٹا کی پارسنگ اور توثیق کو نافذ کرنا ضروری ہے۔
درست Notification Action ہینڈلنگ تجزیات اور صارف کے تجربے کے لیے اہم ہے۔ ہر ٹیپ لاگ ہونا چاہیے، اور عمل کو قابل اعتماد طریقے سے انجام دیا جانا چاہیے چاہے ایپ بند ہو۔
اپنے تجزیات کے نظام کے ذریعے ہر Notification Action ٹیپ کو ٹریک کریں۔ Firebase Analytics، Mixpanel یا Yandex.Metrica عمل کے شناخت کنندہ، ٹیپ کے وقت اور نوٹیفکیشن کے سیاق و سباق کو ریکارڈ کرنے کی اجازت دیتے ہیں۔ یہ ڈیٹا آپ کی نوٹیفکیشن حکمت عملی کو بہتر بنانے اور مصروفیت بڑھانے میں مدد کرتا ہے۔ مختلف عملوں کے سیٹ کے ساتھ A/B ٹیسٹنگ صارف کے ساتھ سب سے مؤثر تعامل کے منظرناموں کی شناخت میں مدد کرتی ہے۔
اگر ایپ بند ہے، تب بھی نظام کسی عمل کو ٹیپ کرنے پر Intent یا UNNotificationResponse پہنچاتا ہے۔ Android پر، یقینی ہینڈلنگ کے لیے BroadcastReceiver استعمال کریں۔ iOS پر، نظام ایپ کو پس منظر میں لانچ کرتا ہے اور ڈیلیگیٹ کو جواب بھیجتا ہے۔ اہم اعمال (ادائیگی کی تصدیق، اجازت) کے لیے، دوبارہ کوشش کا طریقہ کار شامل کریں اور صارف کو کامیاب تکمیل کے بارے میں مطلع کریں۔
Android 7.0 سے، ڈویلپر آئیکن اور رنگوں کے ذریعے Notification Action کی ظاہری شکل کو متاثر کر سکتا ہے۔ آئیکن یک رنگی (الفا چینل)، سائز 24x24 dp ہونے چاہئیں۔ iOS پر، بٹن کی تخصیص محدود ہے — سسٹم کے رنگ اور فونٹ استعمال ہوتے ہیں۔ Material Design ترجیح کے مطابق اعمال کو گروپ کرنے کی سفارش کرتا ہے: سب سے اہم عمل پہلے، تباہ کن آخر میں۔
اکثر پوچھے گئے سوالات
Android زیادہ سے زیادہ 3 اعمال تجویز کرتا ہے، iOS — 4 تک۔ حد سے تجاوز کرنے سے کچھ اعمال ظاہر نہیں ہوتے یا ذیلی مینو میں چھپ جاتے ہیں۔
آئیکن NotificationCompat.Action.Builder میں drawable وسائل کے طور پر دیا جاتا ہے۔ آئیکن یک رنگی (الفا چینل)، سائز 24x24 dp اور Material Design رہنما خطوط کے مطابق ہونا چاہیے۔
ہاں، اگر نوٹیفکیشن لاک اسکرین پر ظاہر ہوتا ہے اور visibility فلیگ VISIBILITY_PUBLIC پر سیٹ ہے۔ iOS پر، اجازت درکار اعمال کے لیے .authenticationRequired آپشن ضروری ہے۔
Android پر، نظام عمل کو دوبارہ بناتا ہے اور Intent پہنچاتا ہے۔ iOS پر، نظام ایپ کو پس منظر میں لانچ کرتا ہے۔ یقینی ترسیل Android پر BroadcastReceiver اور iOS پر UNNotificationServiceExtension استعمال کرکے حاصل کی جا سکتی ہے۔
Android پر، اعمال براہ راست نوٹیفکیشن کے نیچے آئیکن کے طور پر نظر آتے ہیں۔ iOS پر، اعمال لمبے دباؤ یا سوائپ کے پیچھے چھپے ہوتے ہیں۔ نوٹیفکیشنز کا UX ڈیزائن ان پلیٹ فارم کے فرق کو مدنظر رکھنا چاہیے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں