处理程序远程通知背景

时间:2017-05-22 11:02:16

标签: ios objective-c firebase push-notification apple-push-notifications

我现在遇到这个问题,我需要在应用程序处于背景时处理推送通知的信息,我的意思是,即使没有点击通知。 这意味着这个应用程序:(UIApplication *)应用程序didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler 必须在后台调用! 这是我的代码

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{

    NSLog(@"full message %@", userInfo);
    NSDictionary *aps = [userInfo objectForKey:@"aps"];
    NSLog(@"full aps %@", aps);
    NSString *custom = [userInfo objectForKey:@"custom"];
    NSLog(@"full custom %@",custom);
    completionHandler(UIBackgroundFetchResultNewData);
    [[NSNotificationCenter defaultCenter] postNotificationName:@"notificationRemote" object:nil userInfo:userInfo];
}

我真的需要处理这些信息,这样每当我收到任何通知时都会将其保存到本地,无论我点击推送通知。

我搜索并看到我需要内容可用于我的有效负载,但我在Firebase控制台通知中找不到它。

2 个答案:

答案 0 :(得分:1)

是的,您需要有效负载中的内容可用密钥才能进行静默推送通知。

有关FCM的更多信息,U可以看到此链接: Firebase silent apns notification

答案 1 :(得分:0)

您可以使用FireBase Cloud功能创建有效内容并触发通知。您可以处理Firebase实时数据库中的事件。 实时数据库支持onWrite()事件,该事件会在指定的数据库位置中随时触发数据创建,销毁或更改。 有关可能对您有帮助的详细信息,请参阅本教程 https://code.tutsplus.com/tutorials/serverless-apps-with-firebase-cloud-functions--cms-28557