如果应用程序处于被杀/强制关闭(非后台)状态,将在接收推送通知时调用什么委托方法?

时间:2016-08-12 09:45:34

标签: ios objective-c notifications

我目前正在开发一个项目,该项目需要在收到通知时将推送通知详细信息存储在本地存储中。

截至目前,我可以在应用处于前景和后台时接收并存储推送通知。

但是,当应用程序强制关闭时,我无法存储通知,因为在收到通知时我没有在代码中获得任何触发器, 如果点击通知面板中的通知,那么我将在代码中获得触发器。

我想要和接近的是我可以保存通知,即使应用程序处于被杀死状态,也可以触摸收到的通知。

3 个答案:

答案 0 :(得分:2)

当您的应用被杀时,您永远不会获得有关APNS的任何信息。

现在,当应用程序被杀,然后打开应用程序时,您将如何获得有关通知的详细信息。我遇到了同样的问题,这是我申请解决的问题。

我们创建了一个名为Notification detail的表。

当服务器同时触发任何推送通知时,我们将其保存在上表中。当应用程序启动时,我们通过used-id

获取所有通知

我们还保存最后一个通知ID来管理徽章计数。

答案 1 :(得分:0)

您可以通过设置以下配置,在您的应用未运行时收到PushNotification。

  1. 在您的应用程序的设置中,选择目标>选择功能>启用后台模式并选择远程通知复选框。
  2. 在推送通知有效内容中,加入"content-available:true"
  3. 现在,一旦收到"content-available:true"的推送消息,iOS就会在后台模式下自动启动您的应用。因此,您可以使用以下方法保存更新。

    -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

    有关Apple的更多信息,请参阅此doc。另请参阅此doc

    谢谢!

答案 2 :(得分:-1)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
   //Check here launchOptions.
    return YES;
}

如果强制关闭应用程序,则单击通知警报时将调用此方法。 检查launchOptions。如果lauchOptions不是nil则会出现通知并相应地处理通知。您可以从userInfo获取launchOptionsuserInfo包含推送通知的所有信息。