Notification Content Extension — یہ کیا ہے اور iOS کے لیے کسٹم انٹرفیس کیسے بنائیں

مصنف: IT Sectr اشاعت: 2026-03-21 مطالعے کا وقت: 8 منٹ

Notification Content Extension ایک iOS ایکسٹینشن ہے جو معیاری push نوٹیفکیشن انٹرفیس کو کسٹم UIView سے تبدیل کرنے کی اجازت دیتی ہے۔ ڈیولپر مواد کی نمائش پر مکمل کنٹرول حاصل کرتا ہے: تصاویر، ویڈیوز، اینیمیشنز، کسٹم فونٹس اور انٹرایکٹو عناصر۔ Apple Developer، 2025 کے مطابق، Notification Content Extension نوٹیفکیشن کی محدود جگہ میں کسی بھی UIKit انٹرفیس کو سپورٹ کرتا ہے۔

اہم نکات

  • Notification Content Extension — کسٹم push نوٹیفکیشن UI کے لیے iOS ایکسٹینشن۔
  • ایکسٹینشن UNNotificationContentExtension پروٹوکول کو لازمی didReceive میتھڈ کے ساتھ لاگو کرتی ہے۔
  • کسٹم انٹرفیس Storyboard میں بنایا جاتا ہے اور کسی بھی UIKit اجزاء پر مشتمل ہو سکتا ہے۔
  • ایکسٹینشن کا زیادہ سے زیادہ سائز 50 MB ہے اور کمپریسڈ حالت میں 12 MB سے زیادہ نہیں ہونا چاہیے۔
  • ایکسٹینشن مخصوص categoryIdentifier والے نوٹیفکیشنز کے لیے فعال ہوتی ہے۔

Notification Content Extension کیا ہے

Notification Content Extension iOS میں ایک ایپ ایکسٹینشن ہے جو push نوٹیفکیشن کے معیاری ڈسپلے ٹیمپلیٹ کو کسٹم UIView سے بدل دیتی ہے۔ عام نوٹیفکیشن کے برعکس، جہاں مواد عنوان، ذیلی عنوان اور باڈی تک محدود ہوتا ہے، ایکسٹینشن کسی بھی UIKit انٹرفیس کو ڈسپلے کر سکتی ہے: کوآرڈینیٹ کے ساتھ نقشہ، گراف، تصویری گیلری یا ان پٹ فارم۔

یہ کیسے کام کرتا ہے

جب iOS مخصوص categoryIdentifier کے ساتھ push نوٹیفکیشن وصول کرتا ہے، تو سسٹم چیک کرتا ہے کہ آیا اس زمرے کے لیے کوئی ایکسٹینشن رجسٹرڈ ہے۔ اگر ہے تو — سسٹم ایکسٹینشن کو علیحدہ عمل میں شروع کرتا ہے اور اسے نوٹیفکیشن کا مواد بھیجتا ہے۔ ایکسٹینشن معیاری کے بجائے اپنا انٹرفیس ڈسپلے کرتی ہے۔ صارف مرکزی ایپلیکیشن کھولے بغیر کسٹم انٹرفیس کے ساتھ تعامل کرتا ہے۔

Notification Service Extension سے فرق

Notification Content Extension کو Notification Service Extension کے ساتھ الجھانا نہیں چاہیے۔ Service Extension نوٹیفکیشن ڈسپلے ہونے سے پہلے مواد پر کارروائی کرتی ہے (اٹیچمنٹ ڈاؤن لوڈ، ڈکرپشن)۔ Content Extension تیار مواد ملنے کے بعد انٹرفیس بدلتی ہے۔ دونوں ایکسٹینشنز مل کر کام کر سکتی ہیں: Service Extension ڈیٹا تیار کرتی ہے، Content Extension اسے ڈسپلے کرتی ہے۔

خصوصیتContent ExtensionService Extension
مقصدکسٹم نوٹیفکیشن UIڈسپلے سے پہلے مواد میں تبدیلی
عملدرآمد کا وقتجب تک صارف نوٹیفکیشن دیکھتا ہےپس منظر میں 30 سیکنڈ تک
انٹرفیسمکمل UIKit UIViewکوئی انٹرفیس نہیں
APIUNNotificationContentExtensionUNNotificationServiceExtension

ایکسٹینشن کی حدود

Notification Content Extension محدود وسائل کے ساتھ الگ تھلگ عمل میں کام کرتی ہے۔ ایکسٹینشن کو App Group کے علاوہ NSUserDefaults کے ذریعے مرکزی ایپلیکیشن کے اسٹوریج تک رسائی نہیں ہے۔ ایکسٹینشن کا سائز کھلی ہوئی حالت میں 50 MB تک محدود ہے۔ مواد ڈسپلے کرنے کا وقت بھی محدود ہے — اگر ایکسٹینشن معقول وقت میں اپ ڈیٹ مکمل نہیں کرتی، سسٹم اسے بند کر دیتا ہے۔

Xcode میں Notification Content Extension بنانا

Xcode میں ایکسٹینشن بنانے کے لیے Notification Content Extension قسم کا نیا target شامل کرنا ضروری ہے۔ Xcode خود بخود MainInterface.storyboard بنائے گا جس میں ایک کنٹرولر ہوگا جو UIViewController سے وراثت پاتا ہے اور UNNotificationContentExtension کو لاگو کرتا ہے۔

target ایکسٹینشن شامل کرنا

Xcode میں File → New → Target → Notification Content Extension منتخب کریں۔ ایکسٹینشن کا نام، زبان (Swift یا Objective-C) بتائیں اور یقینی بنائیں کہ پروجیکٹ اسی ڈیولپر ٹیم سے منسلک ہے۔ target بننے کے بعد تین فائلوں والا فولڈر ظاہر ہوگا: MainInterface.storyboard، Info.plist اور کنٹرولر فائل۔

Info.plist کنفیگریشن

ایکسٹینشن کے Info.plist میں UNNotificationExtensionCategory کلید کے ساتھ NSExtensionAttributes array بتانا لازمی ہے۔ اس array میں نوٹیفکیشن زمرہ جات کے شناخت کنندگان ہوتے ہیں جن کے لیے ایکسٹینشن فعال ہوگی۔ اختیاری کلید UNNotificationExtensionInitialContentSizeRatio درست پوزیشننگ کے لیے کسٹم انٹرفیس کا ابتدائی پہلو تناسب متعین کرتی ہے۔

ایکسٹینشن فولڈر کا آرکیٹیکچر

target ایکسٹینشن میں صاف ستھرا آرکیٹیکچر برقرار رکھنے کی سفارش کی جاتی ہے: کنٹرولرز کے لیے علیحدہ فولڈر، کسٹم View کے لیے علیحدہ فولڈر۔ چونکہ ایکسٹینشن ایک علیحدہ بائنری ہے، مرکزی ایپلیکیشن کا کوڈ براہ راست قابل رسائی نہیں ہے۔ کوڈ شیئر کرنے کے لیے علیحدہ framework بنائیں یا ڈیٹا کے لیے App Group استعمال کریں۔

UNNotificationContentExtension پروٹوکول کو لاگو کرنا

UNNotificationContentExtension وہ پروٹوکول ہے جسے Notification Content Extension میں کنٹرولر کو لاگو کرنا چاہیے۔ واحد لازمی میتھڈ didReceive(_:with:) ہے، جو نوٹیفکیشن موصول ہونے پر کال ہوتی ہے۔ کنٹرولر نوٹیفکیشن اور تیار ویو کنٹرولر وصول کرتا ہے جسے ڈیٹا سے اپ ڈیٹ کرنا ہوتا ہے۔

کنٹرولر کا بنیادی نفاذ

ایکسٹینشن کنٹرولر کو UIViewController سے وراثت پانا چاہیے اور UNNotificationContentExtension کو لاگو کرنا چاہیے۔ Storyboard یا xib اس کنٹرولر سے منسلک ہوتا ہے۔ نوٹیفکیشن موصول ہونے پر didReceive میتھڈ مواد بھیجتی ہے اور کنٹرولر اپنے ویوز کو اپ ڈیٹ کرتا ہے۔

swift
import UIKit
import UserNotifications
import UserNotificationsUI

class CustomNotificationViewController: UIViewController {

    @IBOutlet var titleLabel: UILabel!
    @IBOutlet var customImageView: UIImageView!

    func didReceive(
        notification: UNNotification
    ) {
        let content = notification.request.content
        titleLabel.text = content.title
        loadAttachment(content.attachments.first)
    }

    private func loadAttachment(attachment: UNNotificationAttachment?) {
        guard let url = attachment?.URL else { return }
        if let image = UIImage(contentsOfFile: url.path) {
            customImageView.image = image
        }
    }
}

extension CustomNotificationViewController: UNNotificationContentExtension {
    func didReceive(
        notification: UNNotification
    ) {
        didReceive(notification: notification)
    }
}

انٹرفیس کے سائز کا کنٹرول

سسٹم Info.plist میں UNNotificationExtensionInitialContentSizeRatio کلید اور موجودہ مواد کی بنیاد پر کسٹم انٹرفیس کا سائز متعین کرتا ہے۔ کم سے کم ابتدائی سائز کے لیے اس کلید کو 0.1 پر سیٹ کرنے اور مواد لوڈ ہونے کے بعد preferredContentSize کے ذریعے سائز تبدیل کرنے کی سفارش کی جاتی ہے۔

انٹرفیس کی کسٹمائزیشن اور انٹرایکٹیویٹی

Notification Content Extension انٹرفیس بنانے میں مکمل آزادی دیتی ہے۔ UITableView، MKMapView، WKWebView، UIStackView سمیت کوئی بھی UIKit اجزاء استعمال کیے جا سکتے ہیں۔ تاہم، نوٹیفکیشن کی محدود جگہ کو مدنظر رکھنا اور کارکردگی کو بہتر بنانا ضروری ہے۔

نوٹیفکیشن میں نقشہ شامل کرنا

مقبول منظرناموں میں سے ایک مقام کے ساتھ نقشہ ڈسپلے کرنا ہے۔ اس کے لیے ایکسٹینشن کے Storyboard میں MKMapView شامل کیا جاتا ہے اور کنٹرولر نوٹیفکیشن کے مواد سے کوآرڈینیٹ بھیجتا ہے۔ ایکسٹینشن کے target میں MapKit شامل کرنا نہ بھولیں۔ نقشہ استعمال کرتے وقت ایکسٹینشن کی میموری کی حد کو مدنظر رکھیں — پیچیدہ ٹائلز لوڈ کرنا دستیاب وسائل سے تجاوز کر سکتا ہے۔

اینیمیشنز اور ٹرانزیشنز

Notification Content Extension UIView اینیمیشنز کو سپورٹ کرتی ہے، بشمول سائز تبدیل کرنا، منتقل کرنا اور عناصر کی شفافیت۔ نوٹیفکیشن کے توسیعی موڈ میں داخل ہوتے وقت مواد کے ظاہر ہونے کی اینیمیشن شروع کی جا سکتی ہے۔ اینیمیشنز مختصر ہونی چاہئیں (0.5 سیکنڈ تک) اور صارف کے نوٹیفکیشن کے ساتھ تعامل میں رکاوٹ نہیں بننی چاہئیں۔ لامتناہی اینیمیشنز سے گریز کریں — یہ بیٹری خرچ کرتی ہیں اور کارکردگی کم کرتی ہیں۔

کسٹم انٹرفیس پر ٹیپ ہینڈلنگ

چونکہ ایکسٹینشن ایک مکمل UIViewController ہے، آپ جیسچرز اور ٹیپ ہینڈلرز شامل کر سکتے ہیں۔ UIKit جیسچرز (UITapGestureRecognizer، UIButton) معیاری طور پر کام کرتے ہیں۔ ایسے اقدامات کے لیے جن میں ایپلیکیشن کھولنے کی ضرورت ہو، ایکسٹینشن ڈیلیگیٹ یا userNotificationCenter استعمال کریں۔ انٹرایکٹو عناصر محدود جگہ میں آرام دہ ٹیپ کے لیے کافی بڑے ہونے چاہئیں — Apple کی سفارشات کے مطابق کم از کم ٹچ ٹارگٹ سائز 44x44 پوائنٹس ہے۔

میڈیا اور اٹیچمنٹس کے ساتھ کام کرنا

میڈیا مواد Notification Content Extension کی کلیدی صلاحیت ہے۔ نوٹیفکیشن میں تصاویر، GIF، آڈیو اور ویڈیو شامل ہو سکتے ہیں جو کسٹم انٹرفیس میں ڈسپلے ہوتے ہیں۔ اٹیچمنٹس UNNotificationAttachment کے ذریعے پہنچائے جاتے ہیں، جسے سرور payload کے ذریعے یا Notification Service Extension ڈاؤن لوڈ کے بعد شامل کر سکتا ہے۔ JPEG، PNG، MPEG-4 اور MP3 فارمیٹس سپورٹ ہیں۔

ایکسٹینشن میں میڈیا ڈسپلے کرنا

تصویر ڈسپلے کرنے کے لیے نوٹیفکیشن کے مواد سے UNNotificationAttachment حاصل کرنا اور اسے مقامی URL سے لوڈ کرنا کافی ہے۔ یاد رکھیں کہ ایکسٹینشن کی صرف مقامی فائلوں تک رسائی ہے — دور دراز وسائل کو پہلے Service Extension کے ذریعے ڈاؤن لوڈ کیا جانا چاہیے۔ زیادہ سے زیادہ سائز — iOS 15+ پر 50 MB، بعد کی اپ ڈیٹس میں حد بدلتی ہے۔ متعدد تصاویر کو سپورٹ کرنے کے لیے مختلف شناخت کنندگان کے ساتھ UNNotificationAttachment استعمال کریں اور انہیں UIPageViewController کے ذریعے ڈسپلے کریں۔

تصاویر لوڈ اور ڈسپلے کرنا

کسٹم انٹرفیس میں تصویر ڈسپلے کرنے کے لیے ایکسٹینشن نوٹیفکیشن کے مواد سے UNNotificationAttachment حاصل کرتی ہے اور اسے مقامی URL سے لوڈ کرتی ہے۔ اٹیچمنٹ پہلے Notification Service Extension کے ذریعے ڈاؤن لوڈ کیا جانا چاہیے — Content Extension کو نیٹ ورک تک رسائی نہیں ہے۔ میڈیا اٹیچمنٹ کا زیادہ سے زیادہ سائز — iOS 15+ پر 50 MB، پچھلے ورژنز میں حد 10 MB تھی۔ ایکسٹینشن کو اٹیچمنٹ کی عدم موجودگی کو صحیح طریقے سے ہینڈل کرنا چاہیے اور فال بیک انٹرفیس ڈسپلے کرنا چاہیے۔ کم ریزولیوشن والی تصاویر کو پری لوڈ کرنے کے لیے، Service Extension کے ذریعے اٹیچمنٹ سے پہلے بنائے گئے تھمب نیل ورژن استعمال کریں۔

نوٹیفکیشن میں ویڈیو پلے بیک

iOS AVPlayerLayer کے ذریعے Notification Content Extension میں ویڈیو پلے بیک کو سپورٹ کرتا ہے۔ ایکسٹینشن نوٹیفکیشن میں کنٹرول بٹنوں کے ساتھ ویڈیو پلیئر ڈسپلے کر سکتی ہے۔ یہ خاص طور پر نگرانی ایپلی کیشنز، سٹریمنگ یا مواد کے پیش نظارہ کے لیے مفید ہے۔ اگر صارف اس نوٹیفکیشن میں میڈیا مواد کی توقع رکھتا ہے تو آٹو پلے بغیر آواز کے اجازت ہے۔ ویڈیو پلیئر لاگو کرتے وقت کنٹرول عناصر شامل کریں: پلے/پاز، پیش رفت بار اور بند کرنے کا بٹن۔ یقینی بنائیں کہ ویڈیو خود بخود آواز کے ساتھ شروع نہ ہو — یہ Apple کے صارف تجربے کی سفارشات کی خلاف ورزی ہے۔ متعدد تصاویر کی سلائیڈ شو کے لیے UIView.transition کے ذریعے صفحہ پلٹنے کے ٹرانزیشن آپشن کے ساتھ اینی میٹڈ ٹرانزیشن استعمال کریں۔

ایکسٹینشن کی کارکردگی کو بہتر بنانا

Notification Content Extension تقریباً 50 MB میموری کی حد کے ساتھ محدود ماحول میں کام کرتی ہے۔ کارکردگی بہتر بنانے کے لیے تصاویر کی سست لوڈنگ استعمال کریں، مرکزی تھریڈ پر بھاری حساب کتاب سے گریز کریں اور سادہ کنسٹرینٹس کے ساتھ Auto Layout لگائیں۔ تصویر پروسیسنگ یا ڈیٹا پارسنگ جیسے بھاری آپریشنز بیک گراؤنڈ کیو (DispatchQueue.global) میں انجام دیں۔ اگر میموری کی حد سے تجاوز ہو جائے تو سسٹم ایکسٹینشن بند کر دے گا اور صارف معیاری نوٹیفکیشن دیکھے گا۔ اشاعت سے پہلے Instruments (Allocations اور Time Profiler) کے ذریعے ایکسٹینشن کو پروفائل کرنے اور مختلف iOS ورژنز والے حقیقی آلات پر میموری استعمال چیک کرنے کی سفارش کی جاتی ہے۔

اکثر پوچھے گئے سوالات

کیا Notification Content Extension میں SwiftUI استعمال کیا جا سکتا ہے؟

جی ہاں، iOS 16 سے Notification Content Extension UIHostingController کے ذریعے SwiftUI کو سپورٹ کرتی ہے۔ تاہم، ایکسٹینشنز میں SwiftUI کی محدود سپورٹ کی وجہ سے پیچیدہ انٹرفیسز کے لیے UIKit زیادہ مستحکم انتخاب ہے۔

میرے نوٹیفکیشن کے لیے ایکسٹینشن کیوں فعال نہیں ہو رہی؟

چیک کریں کہ نوٹیفکیشن کے payload میں categoryIdentifier ایکسٹینشن کے Info.plist میں UNNotificationExtensionCategory سے مماثل ہے۔ نیز یقینی بنائیں کہ ایکسٹینشن مین ایپ target میں شامل ہے اور صحیح طریقے سے سائن کی گئی ہے۔

مرکزی ایپلیکیشن سے ایکسٹینشن میں ڈیٹا کیسے منتقل کیا جائے؟

App Group — مشترکہ اسٹوریج (UserDefaults suite) یا فائل کنٹینر استعمال کریں۔ مرکزی ایپلیکیشن اور ایکسٹینشن ایک ہی ڈیولپر گروپ میں ہونی چاہئیں اور App Groups کی صلاحیت فعال ہونی چاہیے۔

نئے نوٹیفکیشن کے بغیر ایکسٹینشن کے مواد کو کیسے اپ ڈیٹ کیا جائے؟

میڈیا کنٹرول کے لیے didReceive(_:with:) with UNNotificationContentExtensionMediaPlayPauseButtonType میتھڈ استعمال کریں یا ڈیلیگیٹ کے ذریعے اپ ڈیٹ کی درخواست کریں۔ نئے نوٹیفکیشن کے بغیر مکمل مواد اپ ڈیٹ ممکن نہیں ہے۔

Notification Content Extension کو ڈیبگ کیسے کیا جائے؟

Xcode میں ایکسٹینشن کا target منتخب کریں اور سمیلیٹر پر چلائیں۔ عام ایپلیکیشن کی طرح lldb اور بریک پوائنٹس استعمال کریں۔ جانچ کے لیے Firebase Console کے ذریعے یا مقامی طور پر Pusher کے ذریعے push نوٹیفکیشن بھیجیں۔

خلاصہ

  • Notification Content Extension — push نوٹیفکیشنز کی کسٹم ڈسپلے کے لیے iOS ایکسٹینشن۔
  • ایکسٹینشن UNNotificationContentExtension کو لاگو کرتی ہے اور مکمل UIKit انٹرفیس فراہم کرتی ہے۔
  • مماثل categoryIdentifier والے نوٹیفکیشنز کے لیے فعال ہوتی ہے۔
  • نقشے، تصاویر، ویڈیوز، اینیمیشنز سمیت کسی بھی UI اجزاء کو سپورٹ کرتی ہے۔
  • App Group کے ذریعے رسائی کے ساتھ الگ تھلگ عمل میں کام کرتی ہے۔
  • سائز کی حد — کھلی ہوئی ایکسٹینشن کا 50 MB۔
  • میڈیا مواد کے لیے Service Extension کے ذریعے تیار کردہ UNNotificationAttachment استعمال کریں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں