Notification Action — ইন্টারঅ্যাকটিভ বাটন এবং ইনপুট ফিল্ড যা সরাসরি push নোটিফিকেশনে দেখা যায় এবং ব্যবহারকারীকে অ্যাপ না খুলেই একটি কাজ সম্পাদনের অনুমতি দেয়। এটি ব্যবহারকারীর অভিজ্ঞতার একটি মূল উপাদান, যা টার্গেট স্ক্রিনের পথ সংক্ষিপ্ত করে। Android Developers, 2025 অনুসারে, Notification Action মিথস্ক্রিয়ায় ঘর্ষণ কমিয়ে ব্যবহারকারীর অংশগ্রহণ 40% পর্যন্ত বৃদ্ধি করে।
প্রধান বিষয়
Notification Action একটি ইন্টারঅ্যাকটিভ ইন্টারফেস উপাদান যা একটি নির্দিষ্ট কাজ সম্পাদনের জন্য push নোটিফিকেশনে যুক্ত করা হয়। ব্যবহারকারী অ্যাপে না ঢুকে একটি বার্তার উত্তর দিতে, একটি কাজ নিশ্চিত করতে বা একটি নির্দিষ্ট স্ক্রিন খুলতে পারেন। অ্যাকশনগুলি নোটিফিকেশন টেক্সটের নীচে বাটন হিসাবে বা সুইপ করার সময় বিস্তৃত ভিউতে প্রদর্শিত হয়।
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-এ push নোটিফিকেশনে অ্যাকশন যুক্ত করতে, একটি ক্যাটাগরি তৈরি করা প্রয়োজন যা সম্পর্কিত অ্যাকশনগুলিকে গ্রুপ করে। ক্যাটাগরি নোটিফিকেশন পেলোডে 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন