我正在使用FCM(Firebase Cloud Messaging)来发送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
-- 根本没有被调用。
我已经在App Capabilities中启用了推送通知和后台远程通知。但是,应用程序仍然无法接收通知。
我参考了一些StackOverflow的问题,但是无法解决这个问题。iOS版本10中是否有任何需要添加的内容或者我的代码存在任何错误?