如何知道 FCM 通知进入 IOS

Posted

技术标签:

【中文标题】如何知道 FCM 通知进入 IOS【英文标题】:How to know FCM notification come in IOS 【发布时间】:2017-09-06 11:41:56 【问题描述】:

你好朋友我是第一次在ios使用FCM,我有一个条件。当我收到通知时,我必须插入一些数据,但无法做到。如果不滑动,我将无法触发任何功能。任何人都可以建议我如何解决这个问题。 滑动后只调用这个函数

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

if (application.applicationState == UIApplicationStateActive)
    //application was in foreground
    NSLog(@"%@",userInfo);
 else if (application.applicationState == UIApplicationStateInactive)
    //application was in background
    NSLog(@"%@",userInfo);
else if (application.applicationState == UIApplicationStateBackground)
     NSLog(@"%@",userInfo);




谁能帮帮我,在此先感谢。

【问题讨论】:

这个函数被调用了吗?您可以使用断点轻松验证这一点。同样在您的有效负载中,您是否将content-available 设置为1 @Honey 感谢回复,是的,我在服务器端使用了 content-available = true,我还使用了断点,在滑动通知之后只有这个方法会触发。但我需要一种在通知到达 Iphone 时触发的方法 此方法在您的手机收到通知的那一刻触发。所以我不明白问题是什么。如果您想在点击时做某事,那么您必须使用:userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: 。更多信息见here 试试这个:-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo @Honey 谢谢,但是当我滑动通知消息时会触发此方法。如果我关闭/取消它,这个方法还没有调用。 【参考方案1】:

您需要将UNNotificationCategoryOptionCustomDismissAction添加到您在通知中心注册的类别中&将该类别添加到您的通知内容中(因为“通知中心的注册类别”应与“类别”匹配它接收到的通知内容”)。

有关更多信息,请参阅 WWDC 2016 通知简介中的 moment

编辑: 什么是类别?

通知本身只是包含正文的消息,仅此而已。如果您想添加任何形式的操作,那么您需要做两件事:

将该操作添加到通知内容中 将该操作添加到您的用户通知中心。

类别可帮助您添加/分组这些操作并相应地添加。有时我需要忽略、回复、点赞一个通知

要向 unusernotificationCenter 注册类别,请执行以下操作:

UNNotificationCategory* generalCategory = [UNNotificationCategory
     categoryWithIdentifier:@"GENERAL"
     actions:@[]
     intentIdentifiers:@[]
     options:UNNotificationCategoryOptionCustomDismissAction];

// Register the notification categories.
UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
[center setNotificationCategories:[NSSet setWithObjects:generalCategory, nil]];

复制自:Registering the Notification Categories for Your App

然后从您的服务器也添加相同的类别名称,即从上面的示例中添加generalCategory 到您的category 键。更多信息请见here。

然后你可以从你的userNotificationCenter:didReceiveNotificationResponse:withCo‌​mpletionHandler: 做:

switch response.actionIdentifier 并使用UNNotificationDismissActionIdentifier 的情况处理点击

【讨论】:

我进行了编辑。确保您完整观看了 WWDC 视频。之后通过这个tutorial。之后一切都会变得更简单。 @Udaikumar 你看过 WWDC 和教程吗?答案有帮助吗? 感谢您的回复,我正在处理这个问题。兄弟,我认为这些功能对 APNs 有帮助,但我正在尝试使用谷歌通知的 FCM。然而我正在努力做,你的帖子真的很有信息量,但无法理解如何实现它。我无法在通知中心添加操作,我该如何使用它 你能说一件事,为了触发,我必须使用这段代码到服务器端吗?对于触发方法,我可以在服务器端使用通知中心代码吗? 如果您不知道如何触发通知,请提出一个新问题。但在此之前,请确保您搜索了可用的答案/问题。

以上是关于如何知道 FCM 通知进入 IOS的主要内容,如果未能解决你的问题,请参考以下文章

Flutter iOS 和 Android 中的 FCM 自定义声音

ios 的 FCM 自定义通知

我如何知道在 iOS 中是不是发送了推送通知?

使用 FCM 推送通知 IOS

FCM 检测 IOS 上的应用程序卸载(firebase 云消息推送通知)

使用 FCM 推送通知不工作 iOS