如何处理 FCM 通知而不在 IOS 上键入弹出窗口

Posted

技术标签:

【中文标题】如何处理 FCM 通知而不在 IOS 上键入弹出窗口【英文标题】:how to process the FCM notification without typing the pop-out windows on IOS 【发布时间】:2020-12-08 02:06:15 【问题描述】:

我是 Swift 和 Firebase 的新手,我完美地实现了 FCM,我正在处理每个通知中的数据并显示它。但是,我遇到了一个问题:我后来没有点击通知的弹出窗口,而是点击了 APP ICON,但通知没有得到处理,并且我的应用页面上没有数据更新。

谁能告诉我如何解决这个问题?我的直觉是在 AppDelegate 中写一些东西,但我已经在 func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any])application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 中拥有与其他函数相同的过程。谢谢!

【问题讨论】:

【参考方案1】:

我后来点击了 APP ICON,通知没有得到处理,我的应用页面上也没有数据更新。

这是意料之中的。如果您的应用收到了 10 条通知,并且您点击了应用图标,那么您如何知道它需要处理哪个通知?

【讨论】:

所以,如果点击主屏幕,没有办法处理通知数据?还有其他推荐吗? 您可以在应用打开时通过回调处理获取所有已发送的通知。见here。您可以查询已发送通知的所有项目... 你知道把这个函数放在哪里吗?它会在 appDelegate 中吗?我假设每次用户点击应用程序图标时都会调用 getDeliveredNotifications(completionHandler:),但是你知道当这个动作发生时 appDelegate 函数会回调什么吗? 如果您希望在点击应用程序图标时调用它,那么我会说为applicationWillEnterForeground 获取回调,然后进行该函数调用并获取所有传递的通知。但是您从任何地方调用使用该回调并获取传递的通知...

以上是关于如何处理 FCM 通知而不在 IOS 上键入弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序不在后台运行时如何处理推送通知

如何处理不同语言的 iOS 推送通知

用户关闭应用程序时如何处理用户在 Xamarin iOS 上单击本地通知?

如何处理视图控制器上的远程通知(而不是 AppDelegate)[关闭]

应用关闭时如何处理 UNNotificationAction?

如何处理 iOS 远程消息中的附加数据 GCM