在用户在后台接收到推送信息后手动打开应用程序时,获取推送通知有效内容

我正在使用iOS7,我试图确定是否可以在以下情况下获得JSON负载。

  • 我有背景模式“远程通知”启用
  • 推送通知在应用程序终止时收到
  • 该应用程序是从图标手动启动不是从通知中心

收到通知后,当我从图标本身启动应用程序时,我无法从启动选项中获得推送

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

并且当从图标手动启动应用程序时,以下方法也不会被调用

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

我终于想出了如何得到这个!

从iOS 7开始,你可以得到它!

基本上,你需要configuration你的应用程序的后台远程通知。

因此,在您的info.plist文件中: For required backgrounds – 将其设置为app downloads content from push notifications.

AppDelegate.m文件中,你需要实现这个方法:

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

看到这个如何实现:didReceiveRemoteNotification:fetchCompletionHandler:从图标VS推送通知

对于您的推送通知,您必须具有'content-available': 1,作为推送通知的一部分。 这是告诉应用程序在显示警报之前有新的内容。

有关后台远程通知的详细信息,请参阅此页面: http : //developer.xamarin.com/guides/cross-platform/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/