2012-12-07 14 views
5

मैं आईफोन में पुश अधिसूचना पर काम कर रहा हूं। जब मुझे पुश अधिसूचना मिलती है, तो यह मेरे आवेदन आइकन पर 1 दिखाता है, अगली बार इसकी 2,3,4। अगर मैं अपना आवेदन 0 खोलता हूं। अगली बार यह 1,2,3,4 होना चाहिए ... लेकिन यह अंतिम नंबर और +1 दिखा रहा है। मैं खुले आवेदन के बाद पुश अधिसूचना बैज रीसेट करना चाहता हूं। मैं शहरी एयरशिप से +1 भेज रहा हूं।वृद्धि के बाद पुश अधिसूचना बैज साफ़ करें

और यह मेरे लिए काम नहीं कर रहा है।

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 
[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
+0

आप बैज नंबर को स्थानीय रूप से साफ़ कर रहे हैं। आपको शहरी एयरशिप सर्वर से इसे साफ़ करने की भी आवश्यकता है। मुझे शहरी एयरशिप नहीं पता है। लेकिन मुझे यकीन है कि सर्वर पर अधिसूचना बैज को रीसेट करने के लिए एक एपीआई है। – EmptyStack

+0

मैं अपने एपीआई में वृद्धि के लिए बैज नंबर +1 भेज रहा हूं। –

उत्तर

0

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

3

मैं अपने अनुप्रयोग में इस कोड का उपयोग क्योंकि शहरी हवाई पोत (UA) प्रलेखन

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
[[UAPush shared] resetBadge]; 

से कहा, लेकिन यह काम नहीं करता है, एप्लिकेशन आइकन पर बिल्ला incrementing रखता है। मैंने यूए के मंचों पर इस मुद्दे पर कुछ पोस्ट देखी और उन्होंने स्पष्ट जवाब नहीं दिया है।

संपादित करें # 1:

मैं निम्नलिखित सुझाव है, जो महान काम किया साथ यूए पर एक समर्थन तकनीशियन से निम्नलिखित प्रतिक्रिया मिली:

आप क्या करना चाहते हैं, तो सुनिश्चित करें कि आपके में है didFinishLaunchingWithOptions: (NSDictionary *) launchOptions विधि, आप बुला रहे हैं निम्नलिखित:

[[UAPush shared] setAutobadgeEnabled:YES]; 
[[UAPush shared] resetBadge];//zero badge on startup 

और भी फोन [[यूएपश साझा] रीसेटबेज]; निम्न विधियों के साथ-साथ में:

applicationDidBecomeActive:(UIApplication *)application 

और

didReceiveRemoteNotification:(NSDictionary *)userInfo 

तकनीशियन यह भी कहा कि बताए 0 applicationIconBadgeNumber के लिए आवश्यक नहीं है, इसलिए मैं इसे बाहर ले लिया। अभी भी खूबसूरती से काम करता है।

संपादित करें # 2: didReceiveRemoteNotification: applicationState: विधि: को यूए के handleNotification करें ताकि

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    // Get application state for iOS4.x+ devices, otherwise assume active 
    UIApplicationState appState = UIApplicationStateActive; 
    if ([application respondsToSelector:@selector(applicationState)]) 
    { 
     appState = application.applicationState; 
    } 

    [[UAPush shared] handleNotification:userInfo applicationState:appState]; 
    [[UAPush shared] resetBadge]; 
} 

क्योंकि मैं था

मैं आवेदन को संशोधित करने के लिए समाप्त हो गया निम्नलिखित परिदृश्य में समस्या है:

    ,210
  1. उपयोगकर्ता एप्लिकेशन
  2. पुश सूचना प्राप्त हुई है
  3. कोई बिल्ला जब घर स्क्रीन पर वापस (उम्मीद के रूप में)
  4. एक और धक्का सूचना प्राप्त होने पर एप्लिकेशन आइकन पर प्रदर्शित किया गया था
  5. बिल्ला नंबर अधिक से अधिक दिखाया गया है 1
  6. से है

उपर्युक्त संशोधन के साथ, इस परिदृश्य को संभाला जाता है। मुझे लगता है कि आपको UA को बताना होगा कि अधिसूचना संभाली जाती है जब कोई प्राप्त होता है और ऐप अग्रभूमि में चल रहा है।

+0

मुझे एक ही समस्या है। मैंने आपके सुझावों की कोशिश की, लेकिन यह मेरे लिए काम नहीं कर रहा है। क्या आप कृपया इसे ठीक करने में मेरी मदद कर सकते हैं? कृपया यहां मेरे प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/20073212/reset-urbanairship-badge-count –

+0

मुझे यकीन नहीं है कि मैं कौन सी अन्य जानकारी जोड़ सकता हूं। जो कोड आप ऊपर देखते हैं वह मेरे लिए काम करता है। – Moebius

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