2013-09-25 5 views
5

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

यहां दिए गए तरीके हैं कि मैं इसे कैसे निपटाने जा रहा हूं, इनमें से कोई भी आसान नहीं है।

  1. सर्वर डेटा नहीं देखता है और एक नया अनुरोध प्राप्त करने पर हमेशा नई सूचनाओं का बैच भेजता है, जो बैज गिनती के रूप में गिनती को दर्शाता है।
  2. ग्राहक पॉपअप पर टैप करके खोला गया है। इस मामले में इसमें didReceiveRemoteNotification में सभी आवश्यक डेटा हैं। या
  3. क्लाइंट अधिसूचना पॉपअप को अनदेखा करता है और ऐप आइकन पर टैप करके ऐप (संभवतः बाद में) खोलता है। इस मामले में didReceiveRemoteNotification नहीं कहा जाता है और इस प्रकार ऐप को सर्वर से सभी आवश्यक डेटा प्राप्त करना पड़ता है। या
  4. सर्वर कभी भी उपयोगकर्ता डेटा और क्लाइंट भेजता है जब भी यह didReceiveRemoteNotification में डेटा शुरू करता है या डेटा लेता है।

और कुछ और? कुछ आसान मैं याद कर रहा हूँ?

+0

@ वीरसुस्का मैं कई लोगों से शर्त लगाता हूं जो एपीएन से निपटते हैं। मुझे आशा थी कि किसी ने उस वजह से उस अच्छी तरह से निपटाया है। प्रस्तुत किए गए विकल्प अधिक हलचल बनाते हैं लेकिन मुझे डर है कि मुझे उनके साथ सौदा करना पड़ा। ऐसा लगता है कि यूआईपीप्लिकेशन के एकाधिक एप एंट्री पॉइंट पर विचार किया जाना चाहिए। – Schultz9999

उत्तर

1

संख्या 4 सही दृष्टिकोण है। इस बात की कोई गारंटी नहीं है कि आईओएस 7 को छोड़कर एपीएन प्राप्त होने पर आपका कोई ऐप कोड चलाएगा। तो जब आपका ऐप शुरू होता है, तो इसे किसी भी नई जानकारी के लिए अपने सर्वर से जांचना पड़ता है जिसे इसे प्रदर्शित करना चाहिए।

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

यह आईओएस 7 के साथ बदल गया है, जहां आप पुश संदेश आने पर लॉन्च होने के लिए remote-notification पृष्ठभूमि मोड का उपयोग कर सकते हैं। https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveRemoteNotification:fetchCompletionHandler देखें:

+0

क्या आपका उत्तर अंततः सुझाव नहीं देता है कि 'सामग्री-उपलब्ध नहीं है: 1'। असल में आपने कभी चुप नोटिफिकेशन का उपयोग नहीं किया ... – Honey

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