在iOS中关闭应用并且应用未在后台运行时,从推送通知获取数据

时间:2014-12-12 16:02:25

标签: ios objective-c push-notification

当收到推送通知并且我的申请完全关闭时,如何处理此信息?

只能从NSDictionary获取此方法的数据 didFinishLaunchingWithOptions:

didReceiveRemoteNotification:

例如:当用户打开应用程序时如何从推送通知中获取数据?而不是当用户直接打开推送通知时。

是否有方法可以响应并检测是否未读取通知?

1 个答案:

答案 0 :(得分:15)

您想要实施

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

如果需要,这将启动您的应用,然后您想要将数据保存在某处,以便当用户下次启动应用时,您可以抓取数据并对其执行操作。

From Apples Doc's:

  

讨论

     

使用此方法处理应用的传入远程通知。   与应用程序不同:didReceiveRemoteNotification:方法,即   只有当您的应用程序在前台即系统中运行时才会调用   当您的应用在前台运行或运行时调用此方法   背景。此外,如果您启用了远程通知   在后台模式下,系统启动你的应用程序(或从中唤醒它)   暂停状态)并在推送时将其置于后台状态   通知到了。但是,系统不会自动进行   如果用户强行退出,请启动您的应用。在那种情况下,   用户必须重新启动应用程序或在系统之前重新启动设备   尝试再次自动启动您的应用。

只需查看方法,我就确定你会弄清楚:)

我做了一个快速谷歌,看起来他们会帮助:

例如:didReceiveRemoteNotification: fetchCompletionHandler: open from icon vs push notification

我在其上看到的第一个教程:http://hayageek.com/ios-background-fetch/