如何知道 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:withCompletionHandler:
做:
switch response.actionIdentifier
并使用UNNotificationDismissActionIdentifier
的情况处理点击
【讨论】:
我进行了编辑。确保您完整观看了 WWDC 视频。之后通过这个tutorial。之后一切都会变得更简单。 @Udaikumar 你看过 WWDC 和教程吗?答案有帮助吗? 感谢您的回复,我正在处理这个问题。兄弟,我认为这些功能对 APNs 有帮助,但我正在尝试使用谷歌通知的 FCM。然而我正在努力做,你的帖子真的很有信息量,但无法理解如何实现它。我无法在通知中心添加操作,我该如何使用它 你能说一件事,为了触发,我必须使用这段代码到服务器端吗?对于触发方法,我可以在服务器端使用通知中心代码吗? 如果您不知道如何触发通知,请提出一个新问题。但在此之前,请确保您搜索了可用的答案/问题。以上是关于如何知道 FCM 通知进入 IOS的主要内容,如果未能解决你的问题,请参考以下文章
Flutter iOS 和 Android 中的 FCM 自定义声音