2013-08-02 12 views
6

मेरे ऐप में मुझे दोहराए गए UILocalNotification सेट करना होगा। मैंहर 14 दिनों (दो सप्ताह) के बाद स्थानीय अधिसूचना दोहराएं?

UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
localNotification.repeatInterval = NSDayCalendarUnit; // or any other calendarUnit 

Ok..it की ठीक करके दैनिक, साप्ताहिक आदि के रूप में repeatInterval सेट करने में सक्षम हूँ, लेकिन मैं हर 14 दिनों के लिए repeatInterval स्थापित करने के लिए है। मुझे this link से पता चला कि हम केवल एनएससीएंडरनेट में से एक को अंतराल दोहरा सकते हैं। तो आप एक मिनट या एक घंटे या एक दिन का दोहराव अंतराल हो सकते हैं लेकिन पांच मिनट या तीन घंटे या 14 दिन नहीं। आईओएस 5 या बाद में इस सीमा के बारे में कोई विचार (वह लेख आईओएस 4.0 के लिए लिखा गया था)?

+0

कुछ एनएससीएंडरनेट के अलावा दोहराना अंतराल का उपयोग करना संभव है? – Bharat

+0

14 दिनों के सप्ताह के साथ कैलेंडर का उपयोग करके इसका समाधान क्यों न करें? ऐसा लगता है कि काम करना चाहिए। फिर द्विपक्षीय (7 दिन का सप्ताह) एक साधारण साप्ताहिक (14 दिन) दोहराव चक्र में बदल जाता है। –

उत्तर

5

आप केवल कैलेंडर इकाई में दोहराना अंतराल सेट कर सकते हैं। सही समय अंतराल प्राप्त करने के लिए आपको कई अधिसूचनाएं सेट करनी पड़ सकती हैं।

यदि आप उदाहरण के लिए हर 20 मिनट में अधिसूचना चाहते हैं तो आपको NSHourCalendarUnit के दोहराए गए अंतराल के साथ 20 अधिसूचनाएं 20 मिनट बनाना होगा।

आपके मामले में समस्या यह है कि सप्ताह इकाई से अगली चीज़ एक महीने है लेकिन एक महीने बिल्कुल 4 सप्ताह नहीं है।

वास्तव में हर 14 दिनों के लिए अधिसूचना सेट करने के लिए आपको NSYearCalendarUnit के दोहराव अंतराल के साथ 26 अधिसूचनाएं बनाना होगा।

+0

आपकी मदद के लिए धन्यवाद लेकिन स्थानीय अधिसूचना की एक और सीमा यह है कि हम केवल अधिकतम 64 अधिसूचनाओं का उपयोग कर सकते हैं और मुझे दैनिक, साप्ताहिक, 14 दिन, मासिक आदि के दोहराव सेट करना होगा और यहां एक संभावना है कि अधिसूचना गिनती 64 की सीमा पार हो सकता है? – Bharat

+0

अधिकतम विचार है लेकिन आपके पास दैनिक, साप्ताहिक और मासिक के लिए कैलेंडर प्रकार हैं, इसलिए उन्हें केवल एक अधिसूचना की आवश्यकता होगी। यदि आप साप्ताहिक उपयोग कर रहे हैं, तो आपको 14 दिन की अधिसूचना की भी आवश्यकता है? – user2123173

+0

हां, संक्रमित मुझे प्रतिदिन साप्ताहिक (सप्ताह में 2 बार), साप्ताहिक, 14 दिन, और मासिक दोहराव की आवश्यकता होती है। – Bharat

1

अधिसूचना को संभालने के दौरान आप अधिसूचना रद्द कर सकते हैं और 14 दिनों में एक नई अग्निशमन तिथि निर्धारित कर सकते हैं। अर्थात अपने ऐप के अग्रभूमि में चल रहा है, में यह कार्य करें:

(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 

इस अतः विषय देखें: Set repeatInterval in local notification

मैं इस तरह की कोशिश की है, और यह काम करता है।

+0

हां आप सही हैं मैंने इस तरह से किया है .. – Bharat

+0

यह कॉलबैक काम नहीं करता है अगर एप्लिकेशन पृष्ठभूमि और उपयोगकर्ता में है अधिसूचना चेतावनी को खारिज न करें – hariszaman

0

आईओएस 10 में, आप प्रत्येक 14 दिनों के बाद अधिसूचना दोहराने के लिए UNTimeIntervalNotificationTrigger का उपयोग कर सकते हैं।

UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:(14*24*3600) repeats: YES]; 
NSLog(@"td %@", trigger.nextTriggerDate); 

UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger]; 

[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) { 
    if (error != nil) { 
     NSLog(@"Something went wrong: %@",error); 
    } else { 
     NSLog(@"Created! --> %@",request); 
    } 
}]; 

आशा है कि इससे किसी को भी इस विषय की तलाश करने में मदद मिलेगी।

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