5

जब आपके आईफोन को व्हाट्सएप/टेलीग्राम पुश अधिसूचना प्राप्त होती है उदा।क्या मुझे पेलोड प्राप्त करने पर अपना ऐप अपडेट करना चाहिए? या मुझे हमेशा इसे अपने लिए डाउनलोड करने की इजाजत देनी चाहिए?

wife: 
"buy pizza" 

Question1: यह है एप्लिकेशन को डाउनलोड/प्राप्त होने वाले ही नहीं है। फोन पर पॉप अप करने वाला बैनर खुद ही डाउनलोड करना है + मेरे व्हाट्सएप/टेलीग्राम को फिर से डाउनलोड करना है?

मेरे दोस्त ने जवाब दिया:

पुश सूचनाएं एक पेलोड के रूप में संदेश हो सकता है। आपका ऐप निकाल सकता है और बिना अतिरिक्त अनुरोध करने के वार्तालाप में गतिशील रूप से सम्मिलित हो सकता है - मैंने पहले ऐसा किया है। यह बहुत स्नैपियर महसूस करता है। नकारात्मकता यह है कि आपको गारंटी नहीं है कि सही क्रम में (या बिल्कुल) पहुंच जाएगा।

लेकिन मैं आश्वस्त नहीं किया गया था, को देखने के एक बिंदु से अर्थ, सूचनाएं चाहिए वास्तव में नहीं अद्यतन अपने अनुप्रयोग के लिए खुद को धक्का। यदि वे ऐसा करते हैं तो यह दुर्व्यवहार होगा ... उन्हें केवल को अपडेट का ऐप सूचित करना चाहिए और फिर आपको उपलब्ध कराई गई नई सामग्री डाउनलोड करने के माध्यम से अपने आप को अद्यतन करने की अनुमति दें।

तो अगर शीर्ष कंपनियों और उनके एप्लिकेशन आवेदन कर रहे हैं देखने के लिए क्या मेरे दोस्त का सुझाव दिया मैं 3 क्षुधा (जीमेल, WhatsApp, टेलीग्राम) के साथ एक छोटे से प्रयोग किया: पर

मैं वाईफ़ाई बंद कर दिया है, लेकिन रखा सेलुलर डाटा , तो मैं भी सेलुलर डेटा का उपयोग करने से ऐप की पहुंच अक्षम अक्षम करता हूं।

enter image description here

तब मैं कोई मुझे संदेश/ईमेल भेजने के लिए किया था: यहाँ मेरी परिणाम हैं:

टेलीग्राम:: मैं एक चेतावनी (कि इस + पहली पंक्ति है) मिलता है। लेकिन एक बार जब मैं ऐप खोलता हूं (या अधिसूचना पर टैप करता हूं), तो मेरा नया संदेश या कुछ भी नहीं है।

हालांकि, अगर टेलीग्राम पास इंटरनेट की सुविधा के लिए अनुमति दी है ... यह पृष्ठभूमि में संदेश डाउनलोड करता है ... कि अगर मैं इस अनुक्रम का पालन करें: मैं वाईफ़ाई हूँ या कोई इंटरनेट प्रतिबंध के साथ सेलुलर डाटा पर -> प्राप्त एक अधिसूचना -> इंटरनेट को पूरी तरह से बंद करें लेकिन फिर ऐप पर जाएं: मैं वहां पूरा संदेश/बॉडी देखूंगा।

जीमेल: मुझे एक चेतावनी मिलती है (जिसमें विषय/प्रेषक/शरीर का पूर्वावलोकन है) लेकिन एक बार जब मैं ऐप खोलता हूं, तो मेरा नया संदेश या कुछ भी नहीं होता है।

यदि जीमेल ऐप को इंटरनेट तक पहुंच की अनुमति है ... तो टेलीग्राम के विपरीत: केवल ऐप खोलने के बिना ही यह जीमेल में ईमेल डाउनलोड/अपडेट करेगा। मेरा अनुमान है कि जीमेल 1 को content-available सेट नहीं है लेकिन टेलीग्राम यह 1

WhatsApp पर सेट है: मैं कुछ भी नहीं मिलता है।

अधिसूचना प्राप्त करने पर कोई बातचीत नहीं होती है ... यह तब होता है जब ऐप स्वयं डाउनलोड कर रहा हो।

मेरा निष्कर्ष यह है:

कोई बातचीत अधिसूचना प्राप्त होने पर होता है ... यह केवल होता है अगर एप्लिकेशन ही पेलोड आगमन से स्वतंत्र डाउनलोड कर रहा है।

जीमेल और टेलीग्राम एक अनावश्यक डाउनलोड कर रहे हैं और मूल रूप से मेरे दोस्त ने जो सुझाव दिया है उसके लिए पर्याप्त स्मार्ट नहीं है या ईमेल/संदेश प्राप्त करने का जोखिम बहुत अधिक है और सुरक्षित पक्ष पर होना बेहतर है: thinking_face:

प्रश्न 2: क्या यह निष्कर्ष सही है?

+0

मैं स्वीकार्य उत्तर से वास्तव में प्रसन्न नहीं हूं :(। किसी भी तरह का बकाया प्रदान किया गया है। वैकल्पिक जवाब के रूप में [यहां] देखें (https://stackoverflow.com/a/26302815/5175709)। टिप्पणियां – Honey

उत्तर

4

सबसे पहले, पेलोड डाउनलोड करना आमतौर पर कोई समस्या नहीं है। मुझे लगता है कि पेलोड आमतौर पर बहुत छोटा होता है (शायद < 1Kb लघु टेक्स्ट संदेशों के लिए)। वास्तव में, नियमित रिमोट पेलोड के लिए अधिकतम आकार 4 केबी (वीओआईपी अधिसूचनाओं के लिए 5 केबी) है। Creating the Remote Notification Payload देखें।

दूसरा, आपके ऐप को किसी दूरस्थ सूचना डेटा तक पहुंचना मुश्किल है। एकमात्र तरीका जो संभव है, एक मूक अधिसूचना के माध्यम से है, जिसे सरल पाठ अधिसूचनाओं के लिए अनुशंसित नहीं किया जाता है। एक मूक अधिसूचना आपके ऐप को जगाती है और इसे फिर से बंद होने से पहले पृष्ठभूमि में क्रियाएं करने के लिए 30 सेकंड देती है। आप संभावित रूप से रिमोट मूक अधिसूचना भेज सकते हैं जो आपके ऐप को उस दूरस्थ (या एक चुप और नियमित रिमोट अधिसूचना दोनों) के आधार पर नियमित, स्थानीय अधिसूचना मैन्युअल रूप से ट्रिगर करने का कारण बनता है, लेकिन फिर, मौन अधिसूचनाओं के इस तरह के उपयोग की अनुशंसा नहीं की जाती है:

मौन अधिसूचनाएं आपके ऐप को पृष्ठभूमि में जागने के तरीके के रूप में नहीं हैं, न ही वे उच्च प्राथमिकता अपडेट के लिए हैं। एपीएन मौन अधिसूचनाओं को कम प्राथमिकता के रूप में मानते हैं और यदि कुल संख्या अत्यधिक हो जाती है तो उनकी डिलीवरी पूरी तरह से खराब हो सकती है। वास्तविक सीमाएं गतिशील हैं और परिस्थितियों के आधार पर बदल सकती हैं, लेकिन प्रति घंटे कुछ अधिसूचनाएं भेजने की कोशिश न करें।

अधिक जानकारी के लिए Configuring a Silent Notification देखें।

एक और संभावित तरीका है कि ऐप्स रिमोट नोटिफिकेशन को "डाउनलोड" कर सकते हैं जैसा कि उन्हें प्राप्त किया गया है Modifying the Payload of a Remote Notification में वर्णित है। आप अधिसूचनाओं को आसानी से सहेज सकते हैं और उन्हें संशोधित नहीं करना चुन सकते हैं।

कोई सार्वभौमिक हां/कोई जवाब नहीं है जो आपके सभी प्रश्नों के लिए सभी ऐप्स के लिए काम करता है। इसके बजाए, कई अलग-अलग तरीके हैं जिनसे ऐप्स दूरस्थ सूचनाएं प्राप्त कर सकते हैं और उनके डेटा को संसाधित कर सकते हैं।

संपादित: तुम भी application(_:didReceiveRemoteNotification:fetchCompletionHandler:) को लागू करने और पुनः प्राप्त करेगा/अधिसूचना के उपयोगकर्ता की जानकारी से डेटा को बचाने के लिए इतना है कि डेटा तेजी से अपने अनुप्रयोग में उपलब्ध है। हालांकि, उस विधि को बुलाया जाने की गारंटी नहीं है। तो आप इसे लागू/लागू कर सकते हैं, लेकिन सबसे महत्वपूर्ण बात यह है कि, अपने ऐप को अपने सर्वर से नए डेटा की जांच करें ताकि कुछ भी याद न हो।

+0

कोई सार्वभौमिक उत्तर नहीं है? ठीक है ... मुझे यह बहुत विशिष्ट बनाने दें।बैटरी की बचत के मामले में और चीजों को फिर से लोड नहीं करना + विश्वसनीयता व्हाट्सएप, टेलीग्राम जैसे ऐप्स के लिए सही दृष्टिकोण क्या है? – Honey

+0

संशोधित करने के आपके सुझाव के लिए, सुनिश्चित नहीं है कि मुझे उस मार्ग पर क्यों जाना है। 'आवेदन क्या है (_: didReceiveRemoteNotification: fetchCompletionHandler:) 'तब के लिए उपयोग किया जाता है? क्या यह अधिसूचना प्राप्त करने पर ट्रिगर नहीं होता है? – Honey

+0

आप उस विधि को कार्यान्वित कर सकते हैं और इसे अधिसूचना से उपयोगकर्ता जानकारी पुनर्प्राप्त/सहेज सकते हैं (जो मैं अनुशंसा करता हूं), लेकिन एक पकड़ है: उस विधि को कॉल करने की गारंटी नहीं है। [यहां] देखें (https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013- एप्लिकेशन)। यह विधि केवल नए संदेश/नोटिफिकेशन * तेज * इन-एप उपलब्ध कराने के लिए है। हालांकि, आपके ऐप को भी नए डेटा के लिए अपने सर्वर की जांच करनी चाहिए। – Coder256

संबंधित मुद्दे