我是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)
与其他功能有。谢谢!
后来我点击了APP图标,但通知没有得到处理,并且我的应用页面上没有数据更新。
那是意料之中的。如果你的应用收到了10条通知,并且你轻按了应用图标,那么你应该如何知道需要处理哪个通知呢?
因此,如果点击主屏幕,将无法处理通知数据吗?还有其他建议吗?
您可以在打开应用时通过回调处理获取所有传递的通知。看这里。您可以查询已发送的通知中的所有项目...
您知道在哪里放置此功能吗?它会出现在appDelegate中吗?我假设每次用户点击应用程序ICON时都会调用getDeliveredNotifications(completionHandler :),但是您知道当此操作发生时会调用什么appDelegate函数吗?
如果您希望每当点击应用程序图标时就调用它,那么我会说一个回调
applicationWillEnterForeground
,然后进行该函数调用并获取所有传递的通知。但是您可以从任何地方调用使用该回调并获取传递的通知...