2013-08-07 5 views
5

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

मैंने इसे प्राप्त करने के लिए निम्नलिखित कदमों का प्रयास किया, लेकिन सफल नहीं हुआ। मैं यहां गलत कर रहा हूं, मेरी मदद करें।

1) मैंने अनुप्रयोग के अंदर kereachabilityChangedNotification के लिए पर्यवेक्षक जोड़ा DidEnterBackground प्रतिनिधि विधि। लेकिन मेरा ऐप इस विधि में क्रेचबिलीचगेड्नोटिफिकेशन को सुनने में विफल रहता है।

2) यदि मैं kreachabilityChangedNotification के लिए पर्यवेक्षक जोड़ता हूं applicationdidbecomeActive के अंदर, तो मेरा ऐप Kreachabiliychagednotification के लिए सुनने में सक्षम है।

आईओएस पृष्ठभूमि में ऐप होने पर क्रेचबिलिचेंडेनोटेशन को क्यों सुनने की अनुमति नहीं देता है?

+0

हाय क्या आपको इस प्रश्न का कोई जवाब मिला है? – souvickcse

+0

हाय क्या आप इस समस्या को हल करने में सक्षम थे? – ShayanK

उत्तर

1

मैं एक प्रोजेक्ट पर था जब मैं उसी परिदृश्य को संभालने आया था, लेकिन मुझे पता चला कि पृष्ठभूमि स्थिति ऐप में डिफ़ॉल्ट रूप से केवल थोड़े समय के लिए रहता है, अधिकांश ऐप्स जल्द ही बाद में निलंबित राज्य में जाते हैं। इसका मतलब है कि ऐप पृष्ठभूमि में है लेकिन कोड निष्पादित नहीं कर रहा है। तो आपकी कस्टम लागू अधिसूचना काम नहीं करती है। वेकअप समय पर NetworkReachability requery अवश्य एप्लिकेशन प्रतिनिधि methodes में:

applicationWillEnterForeground: 
applicationDidBecomeActive 

यह सबसे अच्छा मैं उस समस्या को संभालने के लिए किया था, आशा है कि यह

+0

धन्यवाद हेमंत .. लेकिन क्या आपको कोई आइडिया है कि अन्य आईओएस ऐप यह कैसे कर सकता है? – RockandRoll

+0

मुझे लगता है कि @Andrea इस बारे में सही है ... विस्तृत व्याख्या के लिए –

4

जवाब में मदद करता है कि आप नहीं है जब तक आप आवेदन एक होगा कर सकते हैं उन विशिष्ट उपयोग की (हवाले से एप्पल doc): पृष्ठभूमि निष्पादन के कुछ प्रकार के लिए

समर्थन उन्हें का उपयोग करता है एप्लिकेशन द्वारा पहले से घोषित किया जाना चाहिए। एक ऐप अपनी Info.plist फ़ाइल का उपयोग कर सेवा के लिए समर्थन की घोषणा करता है। एक सरणी निम्नलिखित तार के एक या एक से अधिक युक्त अपने Info.plist फ़ाइल के लिए UIBackgroundModes कुंजी जोड़ें और उसके मान सेट:

* ऑडियो-ऐप जबकि पृष्ठभूमि में उपयोगकर्ता के लिए श्रव्य सामग्री निभाता है। (इस सामग्री में एयरप्ले का उपयोग कर ऑडियो या वीडियो सामग्री स्ट्रीमिंग शामिल है।)
* स्थान- ऐप उपयोगकर्ताओं को पृष्ठभूमि में चलने के दौरान भी उनके स्थान के बारे में सूचित करता है।
* voip-app उपयोगकर्ता को इंटरनेट कनेक्शन का उपयोग करके फ़ोन कॉल करने की क्षमता प्रदान करता है।
* न्यूज़स्टैंड-सामग्री-ऐप एक न्यूजस्टैंड ऐप है जो पृष्ठभूमि में पत्रिका या समाचार पत्र सामग्री डाउनलोड और प्रक्रिया करता है।
* बाहरी-एक्सेसरी- ऐप हार्डवेयर एक्सेसरी के साथ काम करता है जिसे बाहरी एक्सेसरी फ्रेमवर्क के माध्यम से नियमित शेड्यूल पर अपडेट वितरित करने की आवश्यकता होती है।
* ब्लूटूथ-सेंट्रल- ऐप ब्लूटूथ एक्सेसरी के साथ काम करता है जिसे कोर ब्लूटूथ फ्रेमवर्क के माध्यम से नियमित शेड्यूल पर अपडेट वितरित करने की आवश्यकता होती है।
* ब्लूटूथ-परिधीय-ऐप कोर ब्लूटूथ ढांचे के माध्यम से परिधीय मोड में ब्लूटूथ संचार का समर्थन करता है।

आप केवल फिर से प्रवेश के लिए अग्रभूमि की जांच कर सकते हैं।

+0

+1 ... –

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