iOS Local Notification - обратный вызов в фоновом режиме
Контекст: в моем приложении для iOS используются локальные уведомления. Я планирую локальные уведомления, а затем получаю обратный вызов через didRecieveLocalNotifications, когда уведомления запускаются.
Это прекрасно работает, когда приложение находится на переднем плане, однако, когда приложение выходит в фоновом режиме, я получаю уведомление iOS, но не перезваниваю.
Мой вопрос: как я могу получить обратный вызов от iOS, когда приложение находится в фоновом режиме.
Вот код обратного звонка -
- (void)application:(UIApplication *)application didReceiveLocalNotification: (UILocalNotification *)notification
{
//call your method that you want to do something in your app
NSLog (@"Received Notification");
[UIApplication sharedApplication].applicationIconBadgeNumber = 1;
[myRootController HandleLocalNotifications:notification];
}
1 ответ
Вы описываете application:didReceiveLocalNotification:
, Это устарело в iOS 10. Вы должны выполнить обновление до инфраструктуры UserNotification.
Сейчас, когда.
Если ваше приложение находится на переднем крае, пользователь не получает оповещений. Вместо этого вы получаете application:didReceiveLocalNotification:
,
Если ваше приложение не является передним, пользователь получает предупреждение. Поэтому вы не получитеapplication:didReceiveLocalNotification:
потому что уведомление сработало. Но вы получите его, если пользователь получил уведомление и вызвал ваше приложение, нажав на уведомление об уведомлении. Если пользователь это сделает, вы получите application:didReceiveLocalNotification:
даже на заднем плане.
Если ваше приложение было остановлено в фоновом режиме, вы получите application:didFinishLaunchingWithOptions:
(и вы можете проверить options
узнать, что вас запускают из-за уведомления).
Если ваше приложение работало в фоновом режиме или не работает, а пользователь не нажимает на уведомление и не вызывает ваше приложение, вы вообще ничего не получите и не сможете узнать, что уведомление сработало. Это связано с тем, что уведомления не для вашей выгоды, а являются способом отправки сообщения пользователю. (По вашему вопросу это звучит так, как будто вы, возможно, неправильно используете локальные уведомления как способ отправки сообщения себе. Это не то, для чего они.)