当应用程序没有运行(不在后台终止)并收到远程推送通知时,有没有办法通知应用程序,以便应用程序可以在本地更新某些内容,例如简单的int counter?
我想存储一些东西,以便下次启动应用程序时,应用程序知道在应用程序未运行时收到通知并且需要执行某些操作。
如果用户通过点击通知启动应用,显然应用会通过AppDelegate方法通知应用,但如果用户通过点击应用的图标启动应用,则永远不会调用这些方法。
要知道用户通过点击图标启动应用时的通知,我需要一些方法让应用知道应用在后台时收到通知。
答案 0 :(得分:0)
您无法通过简单的推送通知实现此目的。
根据apple docs,如果用户通过将内存刷掉内存来手动杀死您的应用程序,则在用户选择再次启动之前,您的应用程序将永远不会在后台启动以处理数据。
此问题的一个解决方案是使用VOIP推送。 根据苹果文档 -
如果在VoIP时它未运行,您的应用会自动重新启动 收到了推。
但是您需要有充分的理由使用它,苹果可能会在批准您的应用程序商店的应用程序之前询问。
要详细了解VOIP推送,请查看此文档 - https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html
答案 1 :(得分:0)