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 Notification iOS 10 اور اس سے اوپر والے تمام آلات پر سپورٹ ہے، جس میں iPhone 5s اور نئے شامل ہیں۔ حسب ضرورت UI کے ساتھ Content Extension iOS 12 سے دستیاب ہے۔ Content Extension میں SwiftUI — iOS 16 سے۔ پرانے ورژن پر، نوٹیفیکیشن معیاری شکل میں ڈسپلے ہوتا ہے۔
ہاں، اینیمیٹڈ GIF iOS 12 سے سپورٹ ہے۔ GIF ایک عام تصویر کی طرح UNNotificationAttachment کے ذریعے لوڈ ہوتا ہے اور نوٹیفیکیشن دیکھنے پر خود بخود چلتا ہے۔ GIF کا سائز دوسری شکلوں کی طرح 10 MB تک محدود ہے۔
زمرہ رجسٹر کرتے وقت فی نوٹیفیکیشن زیادہ سے زیادہ 4 اعمال۔ اگر زیادہ بتائے جائیں تو نظام پہلے 4 دکھاتا ہے اور باقی کو نظر انداز کرتا ہے۔ بہترین صارف تجربے کے لیے 2–3 بٹن استعمال کرنے کی سفارش کی جاتی ہے — بہت زیادہ اختیارات انٹرفیس کو اوورلوڈ کر دیتے ہیں۔
ہاں، سرور کو کسٹم فیلڈ میں میڈیا فائل کا URL اور mutable-content: 1 پرچم کے ساتھ JSON پے لوڈ کے ذریعے APNS (Apple Push Notification service) کے ذریعے پش بھیجنا چاہیے۔ سرور Content Extension اور اعمال کو فعال کرنے کے لیے زمرہ بھی بتاتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں