我是靠谱客的博主 务实裙子,最近开发中收集的这篇文章主要介绍ios10前台收到推送_当App在iOS 10的后台时,推送通知不会被收到,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

I'm using FCM(Firebase Cloud Messaging) for sending push notifications in iOS.

I'm able to receive the notification when App is in foreground state. But when the App is in background state, the notification is not received. Whenever the application will come to foreground state, only then will the notification be received.

My code is:

- (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 {

}

When App is in background state:

- (void)userNotificationCenter:(UNUserNotificationCenter *)center

willPresentNotification:(UNNotification *)notification

withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler

-- is not called at all.

I enabled push notifications and also remote notifications in background modes in App Capabilities. But App is still not receiving the notification.

I referred to some StackOverflow questions but wasn't able to solve the issue. Is there anything to add in iOS version 10 or any mistake in my code?

解决方案

For iOS 10, we need to call the 2 methods below.

For FOREGROUND state

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler

{

NSLog( @"Handle push from foreground" );

// custom code to handle push while app is in the foreground

NSLog(@"%@", notification.request.content.userInfo);

completionHandler(UNNotificationPresentationOptionAlert);

}

For BACKGROUND state

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler

{

NSLog( @"Handle push from background or closed" );

// if you set a member variable in didReceiveRemoteNotification, you will know if this is from closed or background

NSLog(@"%@", response.notification.request.content.userInfo);

completionHandler();

}

Before that, we must add the UserNotifications framework and import in the AppDelegate.h file

#import

@interface AppDelegate : UIResponder

最后

以上就是务实裙子为你收集整理的ios10前台收到推送_当App在iOS 10的后台时,推送通知不会被收到的全部内容,希望文章能够帮你解决ios10前台收到推送_当App在iOS 10的后台时,推送通知不会被收到所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部