मैं चाहता हूं कि ऐप एक अधिसूचना पर क्लिक करके लॉन्च होने पर विशिष्ट चीजें करे। मैं इन विशिष्ट चीजों को करना चाहता हूं जब ऐप पृष्ठभूमि में पहले से चल रहा है लेकिन जब भी ऐप अधिसूचना पर क्लिक करके स्क्रैच (पृष्ठभूमि में नहीं चल रहा है) से शुरू होता है।एक्सकोड: क्यों लॉन्चऑप्शन में किया गया FinishLaunchingWithOptions हमेशा शून्य?
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
=> कोई समस्या नहीं:
जब एप्लिकेशन अधिसूचना पर एक क्लिक से पृष्ठभूमि से शुरू कर दिया है, मैं के माध्यम से सूचना मिलती है!
जब एप्लिकेशन अधिसूचना पर एक क्लिक करके शुरू से शुरू कर दिया है, मैं के माध्यम से अधिसूचना प्राप्त करना चाहते हैं:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
}
लेकिन launchOptions हमेशा नहीं के बराबर है !! यह ऐप है जब ऐप ऐप आइकन (सामान्य) पर क्लिक के माध्यम से स्क्रैच से शुरू किया जाता है, लेकिन जब ऐप अधिसूचना (सामान्य नहीं) पर क्लिक के माध्यम से स्क्रैच से शुरू होता है।
कोई भी इस मुद्दे को हल करने के बारे में जानता है?
धन्यवाद !!!
संपादित करें 1
यहाँ कैसे मेरी सूचनाएं बनाई गई हैं है (जो प्रश्न): (! मेरे सवाल का जवाब :))
NSDictionary *userInfo = [NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects:notifText,latitudeString,longitudeString,nil]
forKeys:[NSArray arrayWithObjects:@"notifText",@"latitude",@"longitude", nil]];
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = itemDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody =msg;
localNotif.alertAction = @"Ok";
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
localNotif.userInfo = userInfo;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
संपादित 2
यहाँ प्रक्रिया है मैं अपने ऐप को डीबग करता था लेकिन ... यह प्रक्रिया गलत है !!
- मैं "संपादन योजना" मेनू मैं XCode के साथ अपने अनुप्रयोग एक पहली बार शुरू की
- में विकल्प "MyApp.app लांच करने के लिए प्रतीक्षा करें" (खरोंच से लांच) XCode प्रदर्शित करता है के साथ अपने डिबगर की स्थापना "मेरे MyApp लांच करने के लिए प्रतीक्षा कर रहा है" => मैं पर मेरी ऐप्लिकेशन आइकन एप्लिकेशन लॉन्च करने के लिए क्लिक
- एप्लिकेशन शुरू की है => मैं घर बटन => अधिसूचना
- मैं स्टॉप बटन पर क्लिक किया प्रदर्शित किया जाता है पर क्लिक किया एक्सकोड में ऐप को बंद करने के लिए मैंने इसे एक्सकोड => एक्सकोड के साथ फिर से लॉन्च किया है "संदेश को लॉन्च करने के लिए मेरे MyApp के लिए प्रतीक्षा कर रहा है" संदेश => मैंने पर अधिसूचना जारी की ऐप लॉन्च करने के लिए स्टेटस बार
- => लॉन्चऑप्शन शून्य है!
launchOptions शून्य के बराबर तथ्य यह है कि XCode के साथ एप्लिकेशन (विकल्प "शुरू करने के लिए मेरी MyApp के लिए प्रतीक्षारत" के साथ इस मामले में) को दोबारा लॉन्च सूचनाएं हटा देता है, भले ही यह अभी भी स्थिति पट्टी में प्रदर्शित किया जाता है की वजह से है ...
डीबग करने में सक्षम होने के लिए कॉन्फ़िगरेशन पर क्लिक करके ऐप के पुन: लॉन्च होने के बाद लॉन्चऑप्शन की सामग्री क्या है, ऐसा लगता है कि इस सामग्री को यूआईएलर्ट में उल्लिखित करने का एकमात्र तरीका है टैमो फ्रीज़ द्वारा जवाब में। तो, यह विशिष्ट मामले में डिबग करने के लिए निम्नलिखित का उपयोग करें:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"options" message:[launchOptions[UIApplicationLaunchOptionsLocalNotificationKey] description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
return YES;
}
सब तुम्हारी मदद के लिए धन्यवाद !!!!
क्या आप अपनी अधिसूचना जोड़ सकते हैं अपने प्रश्न पर पेलोड? – Joe
आपके उत्तर जो के लिए धन्यवाद। मैंने जोड़ा कि मेरे प्रश्न में मेरी सूचनाएं कैसे बनाई गई हैं।उम्मीद है कि इससे आपको मेरी मदद करने में मदद मिलेगी :) –
हाय @Regis_AG, "ऐप लॉन्च करने के लिए प्रतीक्षा करें" का उपयोग करते समय भी मुझे स्थानीय सूचनाएं मिल सकती हैं - नीचे दिए गए मेरे उत्तर का संपादन देखें। –