Silent Push ایک قسم کا iOS push اطلاع ہے جو صارف کو کسی بھی نمائش اور آواز کے بغیر ڈیوائس پر پہنچایا جاتا ہے۔ خاموش اطلاع کا بنیادی مقصد پس منظر میں ڈیٹا کی مطابقت پذیری، مواد کی تازہ کاری اور مختصر کاموں کو انجام دینا ہے جن میں صارف کی توجہ کی ضرورت نہیں ہوتی۔ Apple Developer Documentation, 2026 کے مطابق، Silent Push آنے والے ڈیٹا کی پروسیسنگ کے لیے ایپ کو 30 سیکنڈ کے لیے پس منظر میں فعال کرتا ہے، جس کے بعد سسٹم بیٹری بچانے کے لیے ڈیوائس کو نیند کے موڈ میں واپس کر دیتا ہے۔
اہم نکات
Silent Push ایک iOS طریقہ کار ہے جو صارف کو کسی بصری اطلاع کے بغیر ڈیوائس پر ڈیٹا پہنچاتا ہے۔ معیاری push کے برعکس جو ایک بینر دکھاتا ہے، آواز چلاتا ہے اور نوٹیفکیشن سینٹر میں ظاہر ہوتا ہے، silent push ایپ کو پس منظر میں جگاتا ہے اور پروسیسنگ کے لیے ڈیٹا دیتا ہے۔ صارف کو کبھی اس طرح کی اطلاع کی ترسیل کا پتہ نہیں چلتا — نتیجہ اگلی بار جب وہ ایپ کھولتے ہیں تو تازہ کاری شدہ مواد ہوتا ہے۔
بنیادی فرق JSON پے لوڈ میں ہے: silent push میں content-available: 1 جھنڈا ہوتا ہے اور alert، sound یا badge نہیں ہوتا۔ معیاری اطلاع alert کے ساتھ ہمیشہ صارف کو دکھائی جاتی ہے، content-available سے قطع نظر۔ Silent push صرف content-available: 1 اور بغیر alert کے کام کرتا ہے — اگر آپ alert شامل کرتے ہیں تو سسٹم پس منظر کی ترسیل کے جھنڈے کے باوجود اطلاع دکھائے گا۔
خاموش اطلاعیں ان منظرناموں کے لیے ناگزیر ہیں جہاں صارف کے ایپ کھولنے تک ڈیٹا تازہ ہونا چاہیے، لیکن صارف کو پریشان نہیں کرنا چاہیے۔ مثالیں: پس منظر میں نیوز فیڈ کو اپ ڈیٹ کرنا، سبسکرپشنز کو مطابقت پذیر بنانا، آف لائن رسائی کے لیے نیا مواد ڈاؤن لوڈ کرنا، ویجٹ کو اپ ڈیٹ کرنا، کیشے کو باطل کرنا۔ Silent Push صارف کی متوقع کارروائی سے پہلے ایپ کو گرم کرنے کے لیے بھی استعمال ہوتا ہے۔
Silent Push کی ترسیل عام اطلاعوں سے نمایاں طور پر مختلف ہوتی ہے اور توانائی کی بہتر بنانے کے قوانین پر عمل کرتی ہے۔ iOS نظام APNS سے push کی درخواست وصول کرتا ہے، تعین کرتا ہے کہ یہ silent push ہے (content-available: 1)، اور متعدد عوامل کی بنیاد پر ترسیل کا فیصلہ کرتا ہے: بیٹری کی سطح، پاور سیونگ موڈ، پچھلے silent pushes کی تعدد، ایپ کی سرگرمی اور موجودہ CPU لوڈ۔
Apple M چپ اور iOS 15+ والے ڈیوائسز پر، silent push Power Nap میکانزم کے ساتھ ضم ہوتا ہے، جو پس منظر کے کاموں کے لیے وقتاً فوقتاً ڈیوائس کو جگاتا ہے۔ Power Nap متعدد silent pushes کو ایک سرگرمی کی مدت میں یکجا کرتا ہے، جس سے مجموعی طور پر بجلی کی کھپت کم ہوتی ہے۔ ڈیولپر Power Nap کو براہ راست کنٹرول نہیں کر سکتا — سسٹم صارف کے رویے اور ایپ کے استعمال کی تاریخ کی بنیاد پر خود بخود فیصلے کرتا ہے۔
جب سسٹم silent push پہنچاتا ہے، ایپ AppDelegate میں application(_:didReceiveRemoteNotification:fetchCompletionHandler:) کال وصول کرتی ہے۔ ڈیولپر کو 30 سیکنڈ کے اندر completion handler کو کال کرنا چاہیے، صحیح نتیجہ (UIBackgroundFetchResult) پاس کرتے ہوئے۔ اگر پروسیسنگ وقت پر مکمل نہیں ہوتی ہے، سسٹم اس ایپ کے لیے silent pushes کی تعدد کو محدود کر سکتا ہے یا ان کی ترسیل مکمل طور پر بند کر سکتا ہے۔
// AppDelegate میں Silent Push کی پروسیسنگ
func application(
_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler:
@escaping (UIBackgroundFetchResult) -> Void
) {
guard let type = userInfo["sync-type"] as? String
else {
completionHandler(.failed)
return
}
if type == "news-feed" {
NewsFeedSyncService().sync { success in
completionHandler(success ? .newData : .failed)
}
} else if type == "cache-invalidate" {
CacheManager.shared.invalidateAll()
completionHandler(.newData)
} else {
completionHandler(.noData)
}
}
Apple silent pushes کے درمیان صحیح وقفے شائع نہیں کرتا، لیکن ٹیسٹ اور دستاویزات کی بنیاد پر، فی ڈیوائس فی گھنٹہ 2–3 خاموش اطلاعوں سے زیادہ نہ بھیجنے کی سفارش کی جاتی ہے۔ زیادہ کثرت سے بھیجنے پر، سسٹم silent pushes کو نظر انداز کرنا شروع کر دیتا ہے اور ڈیٹا کی ترسیل رک جاتی ہے۔ اگر زیادہ بار بار مطابقت پذیری کی ضرورت ہو تو، پس منظر کی ترتیب یا VoIP push کے ساتھ URLSession استعمال کرنے پر غور کریں۔
Silent Push کاموں کی ایک وسیع رینج میں استعمال ہوتا ہے جہاں صارف کی فعال شرکت کے بغیر ڈیٹا کو اپ ٹو ڈیٹ رہنے کی ضرورت ہوتی ہے۔ آئیے حقیقی iOS ایپلیکیشنز میں اس طریقہ کار کے سب سے مؤثر استعمال کے معاملات کو دیکھتے ہیں۔
خبروں کی ایپس، ریڈرز اور سفری ایپلیکیشنز پس منظر میں نیا مواد ڈاؤن لوڈ کرنے کے لیے Silent Push استعمال کرتی ہیں۔ جب صارف ایپ کھولتا ہے، ڈیٹا پہلے سے لوڈ ہوتا ہے اور انٹرنیٹ کنکشن کے بغیر بھی دستیاب ہوتا ہے۔ یہ نقطہ نظر صارف کے تجربے کو ڈرامائی طور پر بہتر بناتا ہے — خالی لوڈنگ اسکرینز غائب ہو جاتی ہیں اور مواد فوری طور پر ظاہر ہوتا ہے۔ جب نئے مضامین آتے ہیں تو سرور silent push بھیجتا ہے اور ایپ انہیں آف لائن پڑھنے کے لیے پس منظر میں ڈاؤن لوڈ کرتی ہے۔
iOS WidgetKit ویجٹ کو ایک شیڈول کے مطابق اپ ڈیٹ کرتا ہے، لیکن سرور کی طرف ڈیٹا تبدیل ہونے کے بعد فوری اپ ڈیٹ کے لیے Silent Push استعمال ہوتا ہے۔ پس منظر میں ایپ silent push پر کارروائی کرتی ہے، ویجٹ کے لیے مقامی ڈیٹا سٹور کو اپ ڈیٹ کرتی ہے اور WidgetCenter کے ذریعے ٹائم لائن کو زبردستی تازہ کرتی ہے۔ صارف ایپ کھولے بغیر ویجٹ پر تازہ ترین معلومات دیکھتا ہے — شرح مبادلہ، موسم کی پیشن گوئی، ترسیل کی حالت۔
جب سرور اہم ڈیٹا کو اپ ڈیٹ کرتا ہے (مثلاً قیمت کے قواعد، پریمیم صارفین کے لیے دستیاب خصوصیات)، Silent Push فوری طور پر مقامی کیشے کو باطل کرنے کی اجازت دیتا ہے۔ اگلی بار کھولنے پر، ایپ پرانے کیشے کو استعمال کرنے کے بجائے سرور سے تازہ ڈیٹا لوڈ کرے گی۔ یہ خاص طور پر ایسی ایپس کے لیے متعلقہ ہے جن میں ادائیگی شدہ مواد یا سبسکرپشنز ہوں۔
کچھ منظرناموں میں، ایپ آئیکن پر بیج کو اطلاع دکھائے بغیر اپ ڈیٹ کرنے کی ضرورت ہوتی ہے۔ پے لوڈ میں بیج فیلڈ کے ساتھ Silent Push صارف کو بینر سے پریشان کیے بغیر مطلوبہ کاؤنٹر ویلیو سیٹ کرنے کی اجازت دیتا ہے۔ مثال کے طور پر، ایک چیٹ ایپ صارف کو ہر نئے پیغام کو اطلاع کے طور پر دکھائے بغیر، اگر صارف پہلے سے ایپ میں ہے تو غیر پڑھے گئے پیغامات کی تعداد کے ساتھ بیج کو اپ ڈیٹ کر سکتی ہے۔
Silent Push کے صحیح آپریشن کے لیے تین سطحوں پر کنفیگریشن کی ضرورت ہوتی ہے: Xcode پروجیکٹ، سرور پر JSON پے لوڈ اور ایپ میں پروسیسنگ کوڈ۔ ہر سطح اہم ہے: کسی بھی مرحلے کو چھوڑنے کے نتیجے میں اطلاع عام کے طور پر پہنچائی جائے گی یا بالکل نہیں پہنچائی جائے گی۔
Xcode میں، آپ کو Push Notifications کی صلاحیت اور Remote notifications کے چیک باکس کے ساتھ Background Modes کو فعال کرنے کی ضرورت ہے۔ Push Notifications APNS کے لیے ایک سرٹیفکیٹ تیار کرتا ہے، جبکہ Background Modes میں Remote notifications سسٹم کو silent push موصول ہونے پر ایپ جگانے کی اجازت دیتا ہے۔ Remote notifications کے بغیر، silent push پہنچایا جائے گا لیکن ایپ پس منظر میں فعال نہیں ہوگی اور ڈیٹا پر کارروائی نہیں ہوگی۔
Silent Push پے لوڈ میں content-available: 1 کے ساتھ aps کلید ہونی چاہیے اور alert، sound یا badge نہیں ہونا چاہیے۔ اپنی مرضی کے فیلڈز aps کی اسی سطح پر پاس کیے جاتے ہیں اور ان میں پروسیسنگ کے لیے ڈیٹا ہوتا ہے: آپریشن کی قسم، آبجیکٹ کی شناخت، میٹا ڈیٹا۔ content-available کے بغیر پے لوڈ کو عام اطلاع سمجھا جائے گا؛ alert کے ساتھ، content-available ہونے کے باوجود یہ عام ہوگی۔
{
"aps": {
"content-available": 1
},
"sync-type": "news-feed",
"last-article-id": "article_8521",
"priority": "high"
}
silent push موصول ہونے پر، iOS ایپ کے دکھائی دینے سے پہلے application(_:didReceiveRemoteNotification:fetchCompletionHandler:) کال کرتا ہے۔ اس طریقہ میں، آپ کو userInfo کا تجزیہ کرنا، ضروری کام کرنا (نیٹ ورک کی درخواستیں، Core Data میں تحریریں، کیشے اپ ڈیٹ) اور 30 سیکنڈ کے اندر صحیح نتیجہ کے ساتھ completionHandler کال کرنا چاہیے۔ completionHandler کو نہ کال کرنا سسٹم کی طرف سے غلطی سمجھا جاتا ہے اور مستقبل کے silent pushes کی تعدد کو متاثر کرتا ہے۔
Silent Push اہم کارروائیوں کے لیے ڈیٹا کی ترسیل کا قابل اعتماد ذریعہ نہیں ہے — یہ ایک بہتر بنانے کا طریقہ کار ہے، ضمانت شدہ مطابقت پذیری نہیں۔ ڈیولپر کو حدود کو سمجھنا چاہیے اور سسٹم کو اس طرح ڈیزائن کرنا چاہیے کہ ایپ silent push کے ساتھ اور بغیر دونوں طرح صحیح کام کرے۔
iOS ہر silent push کی ترسیل کی ضمانت نہیں دیتا۔ سسٹم ترسیل میں تاخیر یا منسوخی کر سکتا ہے جب بیٹری کم ہو (20% سے نیچے)، لو پاور موڈ میں، بار بار silent pushes کے بعد یا اگر ایپ طویل عرصے سے استعمال نہیں ہوئی ہو۔ Apple کے مطابق اوسط ترسیل کے اعدادوشمار: تقریباً 70–80% silent pushes 5 منٹ کے اندر پہنچ جاتے ہیں، باقی میں تاخیر ہو سکتی ہے یا وہ کھو سکتے ہیں۔
Apple مؤثر silent push استعمال کے لیے کئی اصولوں پر عمل کرنے کی سفارش کرتا ہے۔ فی ڈیوائس فی گھنٹہ 2–3 سے زیادہ silent push نہ بھیجیں — حد سے تجاوز کرنا بلاک کرنے کا باعث بنتا ہے۔ کمپیکٹ پے لوڈ استعمال کریں: کم سے کم پے لوڈ سائز پروسیسنگ کو تیز کرتی ہے اور نیٹ ورک کا بوجھ کم کرتی ہے۔ ہمیشہ جتنی جلدی ممکن ہو completionHandler کو کال کریں: پروسیسنگ جتنی زیادہ دیر لے گی، سسٹم کے مستقبل میں silent pushes کو محدود کرنے کا امکان اتنا ہی زیادہ ہوگا۔
ان منظرناموں کے لیے جن میں ضمانت شدہ ترسیل یا زیادہ پروسیسنگ وقت کی ضرورت ہوتی ہے، متبادل پر غور کریں۔ VoIP push (PushKit) ترسیل کی ضمانت دیتا ہے اور زیادہ وقت دیتا ہے، لیکن صرف VoIP ایپلیکیشنز کے لیے ہے۔ Background fetch (UIApplication background fetch) سسٹم کے ذریعے ایک شیڈول پر شروع کیا جاتا ہے، لیکن سرور کے ذریعے شروع نہیں کیا جا سکتا۔ WebSocket ایک مستقل کنکشن برقرار رکھتا ہے لیکن زیادہ بیٹری خرچ کرتا ہے اور تمام قسم کی ایپس کے لیے موزوں نہیں ہے۔
Silent Push کو ڈیبگ کرنے کے لیے، Mac پر Console.app استعمال کریں اور ایپ کے نام کے مطابق فلٹر کریں۔ سسٹم ہر silent push کو “background task” لیبل کے ساتھ لاگ کرتا ہے اور بتاتا ہے کہ پروسیسنگ کامیاب رہی یا نہیں۔ ڈیوائس پر، Settings → Developer → Background Modes Logging کے ذریعے چیک کریں۔ سرور سائیڈ ٹریکنگ APNS Feedback Service کے ذریعے کی جاتی ہے تاکہ نہ پہنچنے والی اطلاعوں کی نشاندہی کی جا سکے۔
اکثر پوچھے گئے سوالات
Silent Push صارف کو ظاہر نہیں ہوتا، آواز نہیں چلاتا اور نوٹیفکیشن سینٹر میں نہیں آتا۔ اس کا مقصد ڈیٹا کی مطابقت پذیری کے لیے ایپ کو پس منظر میں فعال کرنا ہے۔ عام push ہمیشہ ایک بینر دکھاتا ہے اور اس میں آواز اور بیج شامل ہو سکتے ہیں۔
ایپ کو پس منظر کا کام مکمل کرنے کے لیے 30 سیکنڈ ملتے ہیں۔ completionHandler کال کرنے کے بعد، سسٹم ڈیوائس کو نیند کے موڈ میں واپس کر دیتا ہے۔ اگر completionHandler وقت پر نہیں بلایا جاتا، سسٹم اس ایپ کو silent push کی ترسیل بند کر سکتا ہے۔
سسٹم ترسیل میں تاخیر کر سکتا ہے جب بیٹری کم ہو، پاور سیونگ موڈ میں ہو، بار بار silent push بھیجنے کے بعد یا اگر ایپ طویل عرصے سے استعمال نہیں ہوئی ہو۔ یہ iOS کا عام رویہ ہے، جس کا نفاذ کی غلطیوں سے کوئی تعلق نہیں۔
ہاں، آپ alert کے ساتھ content-available 1 شامل کر سکتے ہیں — اس صورت میں اطلاع صارف کو دکھائی جائے گی اور ایپ کو اضافی پس منظر میں فعالیت ملے گی۔ لیکن اگر کام صرف ڈسپلے کے بغیر پس منظر کی مطابقت پذیری ہے، تو alert شامل نہیں کیا جا سکتا۔
Mac پر Console.app استعمال کر کے پس منظر کے کاموں کے لاگز دیکھیں۔ APNS کے ذریعے ایک ٹیسٹ silent push بھیجیں اور چیک کریں کہ didReceiveRemoteNotification صحیح completionHandler کے ساتھ بلایا جاتا ہے۔ Xcode میں، پس منظر کے موڈ سمولیشن کے ساتھ سمیولیٹر استعمال کریں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں