2013-07-12 4 views
5

मेरे पास मेरे ऐप में पुश नोटिफिकेशन सेटअप है।ऐप में प्राप्त पुश सूचनाओं के बीच मैं अलग-अलग कैसे हो सकता हूं और ऐप के बाहर से छुआ?

- (void)application:(UIApplication *)application didReceiveRemoteNotification:  (NSDictionary *)userInfo 
{ 
     if() 
     { 
      //app is in foreground to get here 
     } 
     else if() 
     { 
      //app is in background and then the notification is clicked, to get here 
     } 
} 

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

+0

जो आप कोशिश कर रहे हैं उसे प्राप्त नहीं कर रहे हैं .. :( –

+1

ऐप के बाहर, आपका मतलब है कि ऐप नहीं चल रहा है और हमें अधिसूचना मिलती है। आप उस अधिसूचना पर क्लिक करते हैं और आपका ऐप चलता है। और आप उस पल में कुछ करना चाहते हैं –

+0

हाँ, वास्तव में, मैं वास्तव में एक विशिष्ट दृश्य पर जाना चाहता हूं। – KKendall

उत्तर

7
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateActive) 
     // app was already in the foreground 
    else 
     // app was just brought from background to foreground 
    ... 
} 
+1

यह –

+0

@ManuelM प्रश्न का उत्तर नहीं दे रहा है। तो मुझे प्रश्न का उत्तर कैसे देना चाहिए? –

+0

क्योंकि @KKendall जानना चाहता है कि उपयोगकर्ता ने अधिसूचना पर टैप किया है या नहीं बस एपीएनएस सर्वर से आया है। आपका समाधान उस प्रश्न को हल नहीं करता है। यह समाधान केवल यह निर्धारित करता है कि ऐप पृष्ठभूमि में है या नहीं। आप देखेंगे कि जब आप अधिसूचना के माध्यम से इसे खोलते हैं तो ऐप की वर्तमान स्थिति सक्रिय नहीं है तो, यह वही है! मैं इस समस्या और आदर्श समाधान शू से निपट रहा हूं ld isHandlingRemoteNotification _applicationFlags का उपयोग कर रहे हैं। लेकिन निजी है! लानत है! –

2
- (void)applicationWillResignActive:(UIApplication *)application 
    { 
     applicationIsActive = NO; 
    } 
    - (void)applicationDidBecomeActive:(UIApplication *)application 
    { 
     applicationIsActive = YES; 
    } 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
if (applicationIsActive) 
{ 
} 
    else 
{ 
    } 
} 
2

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

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateBackground | application.applicationState == UIApplicationStateInactive) 
    { 
     // Application is in Background 
    } 
    else 
    { 
     // Application is in Foreground 
    } 
} 

यह ठीक काम करता है ... !!!

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

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