2015-11-02 21 views
6

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

  1. अगर एप्लिकेशन को मार डाला अवस्था में है और एक अधिसूचना आया और उपयोगकर्ता (पुश अधिसूचना से नहीं)

  2. एप्लिकेशन आइकन के माध्यम से एप्लिकेशन triggeres
  3. यदि ऐप पृष्ठभूमि में है और अधिसूचना आई है और उपयोगकर्ता ऐप आइकन के माध्यम से ऐप में प्रवेश करता है (एफ नहीं रॉम पुश संदेश) इस मामले में भी

तो मैं समाधान के लिए खोज की है और चुप पुश नोटिफिकेशन (पृष्ठभूमि मोड के लिए) और कुछ नहीं के बारे में पता करने के लिए तो मैं पता है कि कैसे पुश नोटिफिकेशन के द्वारा सभी स्थितियों को संभालने की ज़रूरत आया और मेरी appdelegete

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey]; 


    if (remoteNotif) { 

     [self handlePushMessage:remoteNotif]; 
    } 
    return YES; 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 

    [self handlePushMessage:userInfo]; 

} 

-(void)handlePushMessage :(NSDictionary*)userInfo{ 

    //method to handle push message 
} 

अग्रिम

+0

यदि आपका ऐप उपयोगकर्ता द्वारा समाप्त कर दिया गया है तो उपयोगकर्ता को ऐप आइकन – Paulw11

+2

से अपना ऐप लॉन्च करने पर पुश नोटिफिकेशन के बारे में पता लगाने का कोई तरीका नहीं है, मुझे लगता है कि, बेहतर है कि आप वेब सेवाएं बनाएं जो आपको प्रतिक्रिया दें अब तक भेजे गए सभी संदेशों में से .bcz पहले परिदृश्य को संभाला नहीं जा सकता है, दूसरा चुप अधिसूचना के माध्यम से संभाला जा सकता है। – Mukesh

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद :) यदि उपयोगकर्ता पहली बार ऐप लॉन्च करने से पहले अधिसूचना आया तो क्या होगा? – AnshaD

उत्तर

1

यह एक आम मुद्दा है के माध्यम से अधिसूचना की जानकारी धक्का प्राप्त कर सकते हैं: अगर उपयोगकर्ता दिखाया गया अधिसूचना के माध्यम से अपने अनुप्रयोग नहीं खुलता है, वहाँ कोई है * संबंधित जानकारी प्राप्त करने का तरीका।

* कई ऐप्स द्वारा नियोजित एक संभावित समाधान अपठित अधिसूचनाओं के लिए दूरस्थ सर्वर से जांचना है (उदाहरण के लिए एक अनसेट रीड-डेट फ़ील्ड की जांच करें)।

+0

उत्तर के लिए धन्यवाद – AnshaD

2

धन्यवाद परिदृश्य में 1. NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey]; यहाँ remoteNotif वापसी nil है के रूप में आप एप्लिकेशन आइकन को ट्रिगर के माध्यम से एप्लिकेशन में दर्ज करें।

परिदृश्य 2. आप निम्न विधि

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
{ 
     if (userInfo) { 

      [self handlePushMessage:userInfo]; 
     } 
} 
+0

उत्तर के लिए धन्यवाद लेकिन यह वह उत्तर नहीं है जिसे मैं ढूंढ रहा हूं :( – AnshaD

2
  1. अगर एप्लिकेशन को मार डाला अवस्था में है और एक अधिसूचना आया और उपयोगकर्ता (पुश अधिसूचना से नहीं) एप्लिकेशन आइकन के माध्यम से एप्लिकेशन triggeres

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

    • यदि आप आईओएस 7 और ऊपर लक्षित कर रहे हैं तो आपको दूरस्थ सूचनाओं के लिए पृष्ठभूमि मोड सक्षम करने की आवश्यकता है। कृपया क्रम में अधिसूचना पेलोड प्राप्त करने के लिए नीचे दिए लिंक की जाँच भी जब एप्लिकेशन पृष्ठभूमि

    didReceiveRemoteNotification not working in the background

    में है कि ऊपर उल्लेख किया एप्लिकेशन प्रतिनिधि विधि कहा जाता हो जाता है जब एप्लिकेशन को अग्रभूमि, पृष्ठभूमि और निलंबित स्थिति में है।

वहाँ अधिसूचना पेलोड प्राप्त करने के लिए कोई रास्ता नहीं है कि एप्लिकेशन को मार दिया जाता है और जब एप्लिकेशन आइकन सीधे नोटिफिकेशन केंद्र में पुश अधिसूचना के बजाय क्लिक किया जाता है है।

0

लक्ष्य सेटिंग्स में क्षमताओं में पृष्ठभूमि मोड के तहत "दूरस्थ सूचनाएं" सक्षम करें। ऐप पृष्ठभूमि में होने पर भी अधिसूचना डेटा लाएगा। साथ ही, कार्यान्वित करना सुनिश्चित करें:

-(void)application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler; 

आपके ऐप प्रतिनिधि में।