我现在遇到这个问题,我需要在应用程序处于背景时处理推送通知的信息,我的意思是,即使没有点击通知。 这意味着这个应用程序:(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控制台通知中找不到它。
答案 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