0

Я тестирую это на iOS 8.4 на симуляторе Xcode и на iPhone 6. Мои уведомления прекрасно работают и отлично срабатывают. Но я не могу понять, как отменить уведомления, когда пользователь закрывает или закрывает приложение. Нажатие кнопки «домой» НЕ отменяет уведомления и должно по-прежнему запускать уведомление.Отмена Метод LocalNotifications не выполняется, когда пользователь закрывает/закрывает приложение

Это то, что я пробовал.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]; 

return YES; 

}

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 

Для ниже методы - он отменяет уведомления, когда пользователь нажимает кнопку Home, но и закрывает приложение, которое не то, что я хочу.

- (void)applicationDidEnterBackground:(UIApplication *)application 

Для нижнего метода - уведомления не будут отменены для домашней кнопки или закрытия приложения.

- (void)applicationWillEnterForeground:(UIApplication *)application 

Для метода ниже - он не выполняет метод вообще для домашней кнопки или закрытия приложения.

- (void)applicationWillTerminate:(UIApplication *)application 

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

ответ

0

Как только вы запускаете уведомление, он будет зарегистрирован в ОС. OS представляет уведомление вовремя. Вы не можете удалить уведомление после прекращения действия приложения. Во время Прекращения не будет вызываться никакой метод.

Когда поступит уведомление, если ваше приложение находится в режиме foregroung, будет вызван метод doReceiveLocalNotification.

Если вы находитесь в фоновом режиме, то вызывается метод DidLaunchwithOption.

Если приложение завершено, метод не вызывается.

Вы предупреждаете о скрытых уведомлениях и представляете фактические уведомления при получении тихих уведомлений в этих методах. Вы можете использовать userinfo для идентификации своих уведомлений.

+0

Можете ли вы объяснить в терминах кода, как я могу это достичь. Где и когда должен быть вызван метод cancelLocalNotitification. – wackytacky99

0
  • (аннулируются) applicationDidEnterBackground: (UIApplication *) применение

до фона, то есть при нажатии кнопки Home.

  • (пустоты) applicationWillEnterForeground: (UIApplication *) применение

Вызывается при переходе из фонового состояния

  • (пустоты) applicationWillTerminate: (UIApplication *) приложение

Вызывается только в том случае, если приложение запущено. Этот метод не вызывается, если приложение приостановлено.

Таким образом, вы не сможете отменить уведомление, когда приложение будет прекращено. Поэтому вы должны выбрать другой механизм для удаления локальных уведомлений. Как создать кнопку, чтобы отменить все уведомления или что-то в этом роде.

+0

Я хочу, чтобы это произошло автоматически. Так что, если приложение сбой или пользовательская батарея погибает, он отменяет уведомление. – wackytacky99

Смежные вопросы