当应用未运行(已终止)时,通知应用有关远程推送通知

时间:2017-11-10 01:35:40

标签: ios push-notification apple-push-notifications

当应用程序没有运行(不在后台终止)并收到远程推送通知时,有没有办法通知应用程序,以便应用程序可以在本地更新某些内容,例如简单的int counter?

我想存储一些东西,以便下次启动应用程序时,应用程序知道在应用程序未运行时收到通知并且需要执行某些操作。

如果用户通过点击通知启动应用,显然应用会通过AppDelegate方法通知应用,但如果用户通过点击应用的图标启动应用,则永远不会调用这些方法。

要知道用户通过点击图标启动应用时的通知,我需要一些方法让应用知道应用在后台时收到通知。

2 个答案:

答案 0 :(得分:0)

您无法通过简单的推送通知实现此目的。

根据apple docs,如果用户通过将内存刷掉内存来手动杀死您的应用程序,则在用户选择再次启动之前,您的应用程序将永远不会在后台启动以处理数据。

此问题的一个解决方案是使用VOIP推送。 根据苹果文档 -

  

如果在VoIP时它未运行,您的应用会自动重新启动   收到了推。

但是您需要有充分的理由使用它,苹果可能会在批准您的应用程序商店的应用程序之前询问。

要详细了解VOIP推送,请查看此文档 - https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html

答案 1 :(得分:0)

您还可以使用“无声推送通知”。哪些确认服务器上有可用的内容,您需要将其下载到应用程序中,无声推送通知的有效负载格式如下

{ content-available:1 }

无声通知的最佳部分是他们不会通知iPhone用户

这里的1是可以从服务器下载的东西。

下面我附上了苹果公司的无声通知幻灯片。enter image description here

您的应用程序正在后台刷新。