首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 11应用后台未收到推送通知

iOS 11应用后台未收到推送通知
EN

Stack Overflow用户
提问于 2018-04-11 15:05:51
回答 1查看 1.2K关注 0票数 1

我在iOS中使用UNUserNotificationCenter发送推送通知。

当App处于前台状态时,我可以收到通知。但是当App处于后台状态时,不会收到通知。每当应用程序进入前台状态时,才会收到通知。

对于注册远程通知:

代码语言:javascript
复制
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0")) {
    [UNUserNotificationCenter currentNotificationCenter].delegate = self;
    [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
        if( !error ){
            dispatch_async(dispatch_get_main_queue(), ^{
                [[UIApplication sharedApplication] registerForRemoteNotifications];
            });
        }
        else{
            NSLog( @"Push registration FAILED" );
            NSLog( @"ERROR: %@ - %@", error.localizedFailureReason, error.localizedDescription );
            NSLog( @"SUGGESTIONS: %@ - %@", error.localizedRecoveryOptions, error.localizedRecoverySuggestion );
        }
    }];
}
else {
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}

当应用程序处于前台模式时,调用此方法:

代码语言:javascript
复制
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
   willPresentNotification:(UNNotification *)notification
     withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler

但此方法在后台模式下不起作用。我提到了一些StackOverflow问题,但无法解决问题。在iOS版本11中有什么需要添加的吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-11 17:49:26

如果是远程通知,则在应用程序委托中调用此方法:

代码语言:javascript
复制
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
//Handle notification here!
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49768586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档