активировать оповещение при вызове UILocalNotification - PullRequest
0 голосов
/ 26 марта 2012

У меня есть UILocalNotification, и я хочу, чтобы при восстановлении приложения с фона на передний план я запускал оповещение. Я могу создать предупреждение в didReceiveLocalNotification, но этот метод можно вызывать только тогда, когда приложение активно. Теперь я хочу проверить, было ли запущено уведомление, когда приложение находится в фоновом режиме, а затем запустить оповещение, когда приложение восстанавливается.

это мой текущий метод

   - (void)applicationDidBecomeActive:(UIApplication *)application
   {

 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.

application.applicationIconBadgeNumber = 0;

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

NSLog(@"prefs %@",[prefs stringForKey:@"kTimerNotificationUserDef"]);

if([prefs stringForKey:@"kTimerNotificationUserDef"] != nil)
{
    [prefs setObject:nil forKey:@"kTimerNotificationUserDef"];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Timer Alert" message:[prefs stringForKey:@"kTimerNotificationUserDef"] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];

    [alert show];
  }
}

NSUserDefaults устанавливается, когда я инициализирую уведомление, однако, это предупреждение вызывается, даже если уведомление еще не пришло. Итак, я предполагаю, что я могу сделать что-то вроде:

   if([prefs stringForKey:@"kTimerNotificationUserDef"] != nil && didFireNotifFromBackground)

есть предложения? спасибо!

Ответы [ 2 ]

1 голос
/ 26 марта 2012
- (void)application:(UIApplication *)application 
    didReceiveLocalNotification:(UILocalNotification *)notification {

 notification.applicationIconBadgeNumber = 0;
 NSString *reminderText = [notification.userInfo objectForKey:kRemindMeNotificationDataKey];
 [viewController showReminder:reminderText];
 }

показать представление оповещения, где класс вы хотите показать

- (void)showReminder:(NSString *)text 
{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Reminder" message:text delegate:nil  cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alertView show];
[alertView release];
}
0 голосов
/ 25 января 2013

Это в ваших настройках.Настройки -> Уведомление-> Ваше приложение справа -> Выберите стиль оповещения.

Тогда вы получаете оповещение непосредственно при запуске локального уведомления

...