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 के माध्यम से टाइमलाइन को जबरन रीफ़्रेश करता है। यूजर ऐप खोले बिना विजेट पर अप-टु-डेट जानकारी देखता है — विनिमय दरें, मौसम पूर्वानुमान, डेलिवरी स्थिति।
जब सर्वर महत्वपूर्ण डेटा (जैसे मूल्य निर्धारण नियम, premium यूजर्स के लिए उपलब्ध सुविधाएँ) को अपडेट करता है, Silent Push तुरंत स्थानीय कैश को अमान्य करने की अनुमति देता है। अगली बार खोलने पर, ऐप पुराने कैश का उपयोग करने के बजाय सर्वर से ताजा डेटा लोड करेगा। यह विशेष रूप से भुगतान सामग्री या सब्सक्रिप्शन वाले ऐप्स के लिए प्रासंगिक है।
कुछ परिदृश्यों में, नोटिफिकेशन दिखाए बिना ऐप आइकन पर badge को अपडेट करने की आवश्यकता होती है। पैलोड में badge फ़ील्ड के सاथ Silent Push यूजर को बैनर से परेशान किए बिना वांछित काउंटर मान सेट करने की अनुमति देता है। उदाहरण के लिए, एक चैट एप यदि यूजर पहले से ऐप में है तो हर नए संदेश को नोटिफिकेशन के रूप में दिखाए बिना पढ़े नहीं संदेशों की संख्या के साथ badge को अपडेट कर सकता है।
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 हमेशा एक बैनर दिखाता है और उसमें ध्वनि और badge शामिल हो सकता है।
ऐप को बैकग्राउंड कार्य को पूरा करने के लिए 30 सेकंड मिलते हैं। completionHandler को काल करने के बाद, सिस्टम डिवाइस को स्लीप मोड में वापस कर देता है। यदि completionHandler को समय पर नहीं बुलाया जाता, तो सिस्टम इस ऐप को silent push डेलिवर करना बंद कर सकता है।
सिस्टम डेलिवरी में देरी कर सकता है जब बैटरी कम हो, पाउर सेविंग मोड में हो, बार-बार silent push भेजने के बाद या यदि ऐप का लंबे समय से उपयोग नहीं किया गया है। यह iOS का सामान्य व्यवहार है, जो कार्यान्वयन त्रुटियों से संबंधित नहीं है।
हाँ, आप alert के साथ content-available: 1 शामिल कर सकते हैं — इस मामले में नोटिफिकेशन यूजर को दिखाई देगा और ऐप को अतिरिक्त बैकग्राउंड सक्रियण मिलेगा। लेकिन यदि कार्य बिना दिखाए केवल बैकग्राउंड सिंक्रोनाइजेशन है, तो alert शामिल नहीं किया जा सकता।
बैकग्राउंड कार्यों के लॉग देखने के लिए Mac पर Console.app का उपयोग करें। APNS के माध्यम से एक परीक्षण silent push भेजें और जाँचें कि सही completionHandler के साथ didReceiveRemoteNotification काल होता है या नहीं। Xcode में, बैकग्राउंड मोड सिमुलेशन के साथ सिमुलेटर का उपयोग करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें