【问题标题】:Handler Remote Notification background处理程序远程通知背景
【发布时间】:2017-10-22 00:19:59
【问题描述】:

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

【问题讨论】:

  • 嗨,我有一个类似的场景,但需要稍作修改,比如当我收到推送通知时,应用程序应该在后台激活并执行中给出的任务,(如用户的位置更新代码), - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo ,但在用户点击通知之前,我的应用程序不会激活。那么,当应用程序处于后台时,我将如何完成这项工作?有谁知道这个的解决方案吗?
  • @Moxarth 你找到解决方案了吗?

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


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 我知道,但无论如何要将内容可用放在 firebase 控制台中?
  • 来自 firebase 控制台,目前似乎不可行。你必须使用他们的推送通知 API。
猜你喜欢
  • 2012-12-12
  • 2014-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多