Я использую FCM (Firebase Cloud Messaging) для отправки push-уведомлений в iOS.
Я могу получать уведомление, когда приложение находится в состоянии переднего плана. Но когда приложение находится в фоновом режиме, уведомление не приходит. Когда приложение перейдет в состояние переднего плана, только тогда будет получено уведомление.
Мой код:
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
// Print message ID.
NSDictionary *userInfo = notification.request.content.userInfo;
NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]);
// Pring full message.
NSLog(@"%@", userInfo);
if( [UIApplication sharedApplication].applicationState == UIApplicationStateInactive )
{
NSLog( @"INACTIVE" );
completionHandler(UNNotificationPresentationOptionAlert);
}
else if( [UIApplication sharedApplication].applicationState == UIApplicationStateBackground )
{
NSLog( @"BACKGROUND" );
completionHandler( UNNotificationPresentationOptionAlert );
}
else
{
NSLog( @"FOREGROUND" );
completionHandler( UNNotificationPresentationOptionAlert );
}}
- (void)applicationDidEnterBackground:(UIApplication *)application {
}
Когда приложение находится в фоновом режиме:
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
- вообще не называется.
Я включил push-уведомления, а также удаленные уведомления в фоновых режимах в возможностях приложения. Но приложение по-прежнему не получает уведомление.
Я ответил на несколько вопросов по StackOverflow, но не смог решить проблему. Есть ли что-нибудь, что нужно добавить в iOS версии 10 или какая-то ошибка в моем коде?