当用户在后台收到推送后手动打开应用程序时获取推送通知有效负载

时间:2014-02-18 16:02:42

标签: ios iphone objective-c push-notification uiapplicationdelegate

我正在使用iOS7,我正在尝试确定在以下情况下是否可以获取JSON有效负载。

  • 我启用了后台模式“远程通知”
  • 在应用终止
  • 时收到推送通知
  • 该应用是从通知中心的图标手动启动的

当我收到通知后从图标本身启动应用程序时,我没有从

中获取启动选项

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

,当从图标

手动启动应用程序时,不会调用以下方法

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

1 个答案:

答案 0 :(得分:1)

我终于弄明白你怎么能得到这个!

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

基本上,您需要为后台远程通知配置应用程序。

所以,在你的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: open from icon vs push notification

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

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