在iOS上,我的应用程序如何获取手机在后台收到的通知数据?

在AppDelegate中有一种方法来获取所有通知数据的队列吗? (一旦用户打开应用程序)。

按照苹果文档:

当远程通知到达时,系统调用application:didReceiveRemoteNotification:fetchCompletionHandler:方法。 通知通常表示新信息的可用性。 在您的应用程序委托方法中,您可能会开始从服务器下载新数据,以便您可以更新应用程序的数据结构。 您也可以使用通知来更新您的用户界面。

你必须启用remote notification background mode ,只有这样你才能回到上面提到的方法。

在你的app delegate试试这个:

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

对于UILocalNotification ,您可以通过调用AppDelegate以下函数来获取收到的通知:

 - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { UIApplicationState state = [application applicationState]; if (state == UIApplicationStateInactive) { // Application was in the background when notification was delivered. } } 

如果您想查找本地通知列表,该应用程序已经设置,请检查此解决scheme 。

您可以检查launchOptions字典,收到通知,当应用程序继续通过点击通知时,

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
     //覆盖应用程序启动后的自定义点。
   NSLog(@“Launch Options:%@”,launchOptions);

  返回YES;
 }