iOS 如何在应用未运行时处理 FCM

Posted

技术标签:

【中文标题】iOS 如何在应用未运行时处理 FCM【英文标题】:iOS How to handle FCM while app is not running 【发布时间】:2019-10-09 08:09:37 【问题描述】:

我正在开发 ios 应用程序,并且正在使用推送通知应用程序。我想在用户收到 fcm 通知时注销用户。

我的应用在以下情况下运行良好

当应用在前台时 当应用在后台时

我的应用无法在以下情况下运行:

当用户杀死应用程序时。

这里我想提一下这个案例。

这种情况是当应用程序关闭或根本没有运行并且服务器同时发送通知时,我可以看到应用程序正在显示横幅/通知,通过单击它我可以获得我的服务器数据并让用户注销.但以下情况是我也非常想处理的情况,那就是

当应用关闭并收到通知,但用户通过单击应用图标打开应用时。

现在告诉我在上面给出的场景中,如何让用户注销,因为我 我无法读取任何服务器数据 UNUserNotificationCenterDelegate 委托功能

注意:我尝试使用 content_available = true 但它也不起作用。

【问题讨论】:

【参考方案1】:

在我看来,最好的解决方案是使用静默推送(就像您尝试使用 content_available = true 一样)

如果您尝试过,但没有任何效果符合您的预期,那么让我们尝试使用 api,当用户通过单击应用程序图标打开应用程序时,您需要调用此 api 来检查是否允许该用户登录.如果是,则正常处理,如果不是,则强制该帐户注销。

【讨论】:

没有其他解决方案吗?这将是我们能做的最后一件事 不要害怕,除非您的静默推送效果很好,并且您可以从中捕获信号以注销用户 你能解释一下吗 我曾经是你的情况(只是目的不同,我的场景不是注销用户),我的解决方案是使用静默推送。我的意思是,如果您的静默推送不起作用或由于任何原因您无法在任何 UNUserNotificationCenterDelegate 委托函数中读取服务器数据,那么让我们使用上面提到的 api。 当您使用静默推送时,您是否有任何方法运行代码,即使应用程序已终止?

以上是关于iOS 如何在应用未运行时处理 FCM的主要内容,如果未能解决你的问题,请参考以下文章

如果应用程序终止,则未收到 iOS FCM 推送通知

Firebase FCM onLaunch 代码在单击通知时未运行功能

通过 FCM 发送时未收到推送通知,但在 IOS 上通过 APN 发送时收到

ios 应用未运行时推送通知单击处理程序

使用swift杀死应用程序时如何存储ios推送通知

Xamarin.iOS 应用程序未运行时未处理 Amazon SNS 推送通知