アプリに通知を実装しました。通知が発生すると、通知のアラート ビューから [OK] または [キャンセル] ボタンを押さずにアラートが消え、ステータス バーからも消えます。これは、アプリケーション起動通知がバックグラウンドまたはフォアグラウンドで行われている間に発生しています。その背後にある理由は何でしょうか?
ユーザーが [OK] または [キャンセル] ボタンを押すまで通知アラートを表示したいのですが、どうすれば実現できますか?
通知設定に何らかの設定が必要ですか、それともそのためのコードを正しく設定する必要がありますか?
私のコードは以下の通りです..
NSDateFormatter *dateFormatter3 = [[NSDateFormatter alloc] init];
[dateFormatter3 setDateFormat:@"dd/MM/yyyy / HH:mm:ss"];
NSDate *toDate = [dateFormatter3 dateFromString:timeBut.titleLabel.text];
[dateFormatter3 release];
NSLog(@"toDate=%@",toDate);
UILocalNotification *localNotification = [[UILocalNotification alloc] init]; //Create the localNotification object
[localNotification setFireDate:toDate]; //Set the date when the alert will be launched using the date adding the time the user selected on the timer
[localNotification setAlertAction:@"Launch"]; //The button's text that launches the application and is shown in the alert
[localNotification setAlertBody:[remTextField text]]; //Set the message in the notification from the textField's text
[localNotification setHasAction: YES]; //Set that pushing the button will launch the
[localNotification setSoundName:UILocalNotificationDefaultSoundName];
//[localNotification setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; //Schedule the notification with the system
[localNotification release];
successalert=[[UIAlertView alloc] initWithTitle:@"DemoTable" message:@"Simple Reminder is successfully added" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[successalert show];
[successalert release];
以下のメソッドを appdelegate に実装しました。
//Getting notification while running
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notif
{
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"DemoTable" message:notif.alertBody delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
// delete the notification from the system
[application cancelLocalNotification:notif] ;
}
ありがとう..