在用户在后台接收到推送信息后手动打开应用程序时,获取推送通知有效内容
我正在使用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/