Rich Notification iOS पुश नोटिफिकेशन का एक उन्नत प्रारूप है जिसमें मीडिया अटैचमेंट, इंटरैक्टिव बटन और उपयोगकर्ता अनुभव को बेहतर बनाने के लिए कस्टम इंटरफ़ेस शामिल हैं। मानक टेक्स्ट नोटिफिकेशन के विपरीत, Rich Notification बैनर या लॉक स्क्रीन पर सीधे इमेज, वीडियो और ऑडियो प्रदर्शित कर सकता है। Apple Developer Documentation, 2026 के अनुसार, UNNotificationAttachment एक नोटिफिकेशन में 10 फ़ाइलों तक समर्थन करता है और सभी उपकरणों पर इष्टतम प्रदर्शन के लिए उन्हें स्वचालित रूप से स्केल करता है।
मुख्य बातें
Rich Notification एक iOS पुश नोटिफिकेशन है जिसमें केवल टेक्स्ट ही नहीं, बल्कि मीडिया अटैचमेंट, इंटरैक्टिव तत्व और एक अनुकूलित इंटरफ़ेस भी शामिल है। “rich” शब्द नोटिफिकेशन में इमेज, वीडियो, ऑडियो, एक्शन बटन और टेक्स्ट इनपुट शामिल करने की क्षमता को दर्शाता है, जो एक साधारण अलर्ट को एक पूर्ण इंटरैक्टिव तत्व में बदल देता है।
Apple ने iOS 10 में UserNotifications फ्रेमवर्क के साथ Rich Notification समर्थन पेश किया। इससे पहले, पुश नोटिफिकेशन में केवल टेक्स्ट, ध्वनि और बैज हो सकता था। iOS 10 ने UNNotificationServiceExtension और UNNotificationContentExtension पेश किए, जिन्होंने कंटेंट को संशोधित करने और कस्टम इंटरफ़ेस बनाने की क्षमता खोल दी। बाद के संस्करणों में Content Extension में SwiftUI समर्थन, एनिमेटेड GIF और बेहतर मीडिया स्केलिंग जोड़ी गई।
Rich Notification उपयोगकर्ता जुड़ाव को महत्वपूर्ण रूप से बढ़ाता है। Apple के अध्ययनों से पता चलता है कि इमेज वाले नोटिफिकेशन को केवल टेक्स्ट वालों की तुलना में 30–40% अधिक इंटरैक्शन मिलते हैं। उत्पाद इमेज, वीडियो प्रीव्यू या त्वरित उत्तर बटन उपयोगकर्ता को ऐप खोले बिना सीधे नोटिफिकेशन से निर्णय लेने की अनुमति देता है। यह लक्ष्य कार्रवाई के मार्ग को छोटा करता है और उपयोगकर्ता अनुभव में सुधार करता है।
UNNotificationAttachment तीन मीडिया श्रेणियों का समर्थन करता है: इमेज, वीडियो और ऑडियो। प्रत्येक प्रकार की प्रारूप, आकार और अवधि की अपनी सीमाएँ हैं। सिस्टम प्रदर्शन अनुकूलन के लिए नोटिफिकेशन आकार में फिट होने के लिए इमेज को स्वचालित रूप से स्केल करता है और वीडियो की अवधि को 30 सेकंड तक सीमित करता है।
| मीडिया प्रकार | समर्थित प्रारूप | अधिकतम आकार |
|---|---|---|
| इमेज | JPEG, PNG, GIF, TIFF | 10 MB प्रति फ़ाइल |
| वीडियो | MPEG, MP4, MOV | 10 MB, 30 सेकंड तक |
| ऑडियो | MP3, AAC, WAV, CAF | 10 MB |
इमेज को कॉम्पैक्ट और विस्तारित नोटिफिकेशन दृश्यों में प्रदर्शित करने के लिए सिस्टम द्वारा स्वचालित रूप से क्रॉप और स्केल किया जाता है। एनिमेटेड GIF iOS 12 से समर्थित हैं और नोटिफिकेशन देखने पर स्वचालित रूप से चलते हैं। अनुशंसित इमेज आकार 1024x1024 पिक्सेल है, जो iPad सहित सभी उपकरणों पर स्पष्ट प्रदर्शन सुनिश्चित करता है।
Rich Notification में वीडियो डिफ़ॉल्ट रूप से बिना ध्वनि के चलता है — उपयोगकर्ता प्लेयर बटन के माध्यम से ध्वनि चालू कर सकता है। अधिकतम वीडियो अवधि 30 सेकंड है, जिसके बाद प्लेबैक रुक जाता है। ऑडियो अटैचमेंट का उपयोग वॉइस संदेशों या ध्वनि पूर्वावलोकन के लिए किया जा सकता है और विस्तारित दृश्य में नोटिफिकेशन पर टैप करने पर चलता है।
इंटरैक्टिव क्रियाएँ उपयोगकर्ता को ऐप खोले बिना सीधे नोटिफिकेशन से संचालन करने की अनुमति देती हैं। क्रियाएँ ऐप लॉन्च होने पर UNNotificationCategory और UNNotificationAction के माध्यम से पंजीकृत की जाती हैं। प्रत्येक क्रिया बैकग्राउंड (ऐप खोले बिना) या फ़ोरग्राउंड (संचालन पूरा करने के लिए ऐप खोलती है) हो सकती है।
UNNotificationAction एक शीर्षक और वैकल्पिक संशोधक जैसे requiresAuthentication (Face ID/Touch ID आवश्यक) या destructive (लाल रंग में हाइलाइट) के साथ एक बटन का प्रतिनिधित्व करता है। UNTextInputNotificationAction टेक्स्ट इनपुट फ़ील्ड जोड़कर इस क्षमता का विस्तार करता है — संदेशों या टिप्पणियों के त्वरित उत्तर के लिए आदर्श। नोटिफिकेशन पर लॉन्ग प्रेस या नीचे स्वाइप करने पर क्रियाएँ प्रदर्शित होती हैं।
नोटिफिकेशन श्रेणियाँ सामग्री प्रकार को उपलब्ध क्रियाओं के सेट से जोड़ती हैं। पंजीकरण प्रक्रिया ऐप लॉन्च पर AppDelegate में UNUserNotificationCenter.current().setNotificationCategories के माध्यम से की जाती है। श्रेणी सर्वर पर JSON पेलोड के category फ़ील्ड में निर्दिष्ट की जाती है, और सिस्टम स्वचालित रूप से नोटिफिकेशन पर क्रियाओं का संबंधित सेट लागू करता है।
जब उपयोगकर्ता कोई बटन दबाता है या टेक्स्ट सबमिट करता है, तो सिस्टम didReceive response विधि के साथ UNUserNotificationCenterDelegate को कॉल करता है। UNNotificationResponse में क्रिया पहचानकर्ता और दर्ज किया गया टेक्स्ट (UNTextInputNotificationAction के लिए) होता है। इस जानकारी के आधार पर, ऐप संबंधित व्यावसायिक तर्क निष्पादित करता है: संदेश भेजता है, क्रिया की पुष्टि करता है, या विशिष्ट स्क्रीन खोलता है।
आइए Rich Notification निर्माण के पूर्ण चक्र से गुज़रें: AppDelegate में श्रेणियाँ पंजीकृत करने से लेकर Service Extension में प्रसंस्करण और प्रदर्शन तक। AppDelegate बटन के साथ श्रेणी पंजीकृत करता है, सर्वर इमेज URL के साथ नोटिफिकेशन भेजता है, Service Extension मीडिया डाउनलोड करता है, और Content Extension बटन के साथ कस्टम इंटरफ़ेस प्रदर्शित करता है।
// AppDelegate — श्रेणियाँ और क्रियाएँ पंजीकृत करना
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "उत्तर दें",
options: [.authenticationRequired])
let likeAction = UNNotificationAction(
identifier: "like",
title: "पसंद करें",
options: [])
let category = UNNotificationCategory(
identifier: "social_post",
actions: [replyAction, likeAction],
intentIdentifiers: [],
options: [])
UNUserNotificationCenter.current()
.setNotificationCategories([category])
return true
}
कस्टम फ़ील्ड में “social_post” श्रेणी और इमेज URL के साथ पुश नोटिफिकेशन प्राप्त करने के बाद, Service Extension सक्रिय होता है। एक्सटेंशन इमेज डाउनलोड करता है नेटवर्क से, अद्वितीय पहचानकर्ता के साथ UNNotificationAttachment बनाता है और इसे कंटेंट में जोड़ता है। डाउनलोड की गई फ़ाइल के आकार की जाँच करना महत्वपूर्ण है — यदि यह 10 MB से अधिक है, तो अटैचमेंट नहीं बनेगा और सिस्टम बिना मीडिया के नोटिफिकेशन दिखाएगा।
class NotificationService: UNNotificationServiceExtension {
override func didReceive(
_ request: UNNotificationRequest,
withContentHandler contentHandler:
@escaping (UNNotificationContent) -> Void
) {
let content = (request.content.mutableCopy()
as! UNMutableNotificationContent)
guard let urlString = content.userInfo["media-url"]
as? String,
let url = URL(string: urlString)
else { contentHandler(request.content); return }
URLSession.shared.downloadTask(with: url) {
location, _, _ in
guard let location = location else {
contentHandler(content); return }
let attachment = try! UNNotificationAttachment(
identifier: "media", url: location,
options: [UNNotificationAttachmentOptionsTypeHintKey:
"jpg"])
content.attachments = [attachment]
contentHandler(content)
}.resume()
}
}
सर्वर के बिना Rich Notification का परीक्षण करने के लिए, iOS सिम्युलेटर का उपयोग करें और xcrun simctl push के साथ टर्मिनल के माध्यम से पुश भेजें। पेलोड में, Service Extension को सक्रिय करने के लिए mutable-content: 1 और क्रियाएँ प्रदर्शित करने के लिए श्रेणी निर्दिष्ट करना सुनिश्चित करें। कमांड चयनित सिम्युलेटर पर सीधे JSON फ़ाइल से पुश चलाता है, जो सर्वर बुनियादी ढाँचा स्थापित किए बिना त्वरित पुनरावृत्ति की अनुमति देता है।
UNNotificationContentExtension आपको मानक नोटिफिकेशन इंटरफ़ेस को पूरी तरह से कस्टम UIKit या SwiftUI दृश्य से बदलने की अनुमति देता है। जब उपयोगकर्ता नोटिफिकेशन का विस्तार करता है (फ़ोर्स टच या नीचे स्वाइप) तब एक्सटेंशन सक्रिय होता है और इसमें बटन, स्लाइडर, एनिमेशन और कोई अन्य UI घटक हो सकते हैं। इंटरफ़ेस का आकार Auto Layout का उपयोग करके सामग्री के अनुकूल होता है।
Content Extension UIViewController से विरासत में मिले दृश्य नियंत्रक के साथ storyboard पर आधारित है। SwiftUI View iOS 16 से UIHostingController के माध्यम से एकीकृत है, जो इंटरफ़ेस निर्माण के लिए आधुनिक दृष्टिकोण की अनुमति देता है। iOS 14–15 के साथ पिछड़ी संगतता के लिए, xib फ़ाइलों के साथ UIKit का उपयोग करने की अनुशंसा की जाती है। इंटरफ़ेस UNNotificationContent के माध्यम से Service Extension से संशोधित सामग्री प्राप्त करता है।
Content Extension didReceive response विधि के साथ UNNotificationContentExtension प्रोटोकॉल को लागू करता है। UNNotificationResponse में दबाए गए बटन या दर्ज किए गए टेक्स्ट के बारे में जानकारी होती है। एक्सटेंशन नोटिफिकेशन को बंद किए बिना इंटरफ़ेस अपडेट कर सकता है या इसे बंद करने के लिए कम्प्लीशन हैंडलर को कॉल कर सकता है। यह त्वरित इंटरैक्शन परिदृश्य बनाने की अनुमति देता है, जैसे नोटिफिकेशन में सीधे दृश्य प्रतिक्रिया के साथ “लाइक”।
Apple अनुशंसा करता है कि Content Extension को संक्षिप्त और कार्यात्मक रखें, अत्यधिक तत्वों से बचें। विस्तारित नोटिफिकेशन की अधिकतम ऊँचाई लगभग 400 पॉइंट है, जिसके बाद सामग्री स्क्रॉल होती है। अन्य नोटिफिकेशन के साथ एकरूपता के लिए सिस्टम फ़ॉन्ट और स्पेसिंग का उपयोग करें। विभिन्न स्क्रीन आकारों पर परीक्षण करें ताकि यह सुनिश्चित हो सके कि इंटरफ़ेस iPhone और iPad दोनों पर सही ढंग से प्रदर्शित होता है।
अक्सर पूछे जाने वाले प्रश्न
एकल मीडिया अटैचमेंट का अधिकतम आकार 10 MB है। सीमा पार होने पर, UNNotificationAttachment नहीं बनता है और नोटिफिकेशन बिना मीडिया के प्रदर्शित होता है। Service Extension में तेज़ लोडिंग के लिए इमेज को 1–3 MB तक अनुकूलित करने की अनुशंसा की जाती है।
Rich Notifications iOS 10 और उसके बाद वाले सभी उपकरणों पर समर्थित हैं, जिसमें iPhone 5s और नए शामिल हैं। कस्टम UI के साथ Content Extension iOS 12 से उपलब्ध है। Content Extension में SwiftUI — iOS 16 से। पुराने संस्करणों पर, नोटिफिकेशन मानक रूप में प्रदर्शित होता है।
हाँ, एनिमेटेड GIF iOS 12 से समर्थित हैं। GIF UNNotificationAttachment के माध्यम से सामान्य इमेज की तरह लोड होता है और नोटिफिकेशन देखने पर स्वचालित रूप से चलता है। GIF का आकार अन्य प्रारूपों की तरह ही 10 MB तक सीमित है।
श्रेणी पंजीकृत करते समय प्रति नोटिफिकेशन अधिकतम 4 क्रियाएँ। यदि अधिक निर्दिष्ट किए जाते हैं, तो सिस्टम पहले 4 प्रदर्शित करता है और बाकी को अनदेखा करता है। इष्टतम UX के लिए 2–3 बटन का उपयोग करने की अनुशंसा की जाती है — बहुत अधिक विकल्प इंटरफ़ेस को ओवरलोड करते हैं।
हाँ, सर्वर को कस्टम फ़ील्ड में मीडिया फ़ाइल URL और mutable-content: 1 फ़्लैग वाली JSON पेलोड के साथ APNS (Apple Push Notification service) के माध्यम से पुश भेजना होगा। सर्वर Content Extension और क्रियाओं को सक्रिय करने के लिए श्रेणी भी निर्दिष्ट करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें