0

アプリに通知を実装しました。通知が発生すると、通知のアラート ビューから [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] ;
  }

ありがとう..

4

1 に答える 1

0

iOS6 のデフォルトの通知スタイルは、バーに通知を表示することです。この場合、アラートは数秒間表示されてから消えます。通知は、ユーザーが開くまで通知バーに残ります。これは、通知センターのデフォルトの動作です。それを変更することはできません。アプリのユーザーは、古いスタイルのアラート通知または通知センターでの通知が必要かどうか、アラートのスタイルを決定する必要があります。彼が iPhone の設定から古いスタイルのアラートを選択した場合、アラート ボタン アクションを通じてアプリを開くようにユーザーに促すことができるのはあなただけです。それ以外の場合、ユーザーが通知バーから通知を選択するとアプリが開きます。これはユーザー設定であり、何もできません

于 2013-06-26T06:10:06.757 に答える