Push Parse - didFinishLaunchingWithOptions中的launchOptions为null

时间:2014-07-03 08:33:30

标签: ios push-notification parse-platform

我知道这是一个已经回答的问题。

但是在阅读了很多信息之后我的问题仍然存在。

使用parse我发送了这个json push:

{"aps" : { "alert" : "text msg", "badge" : 1, "sound" : "chime" }, "_3Y" : "0"}

如果app处于活动状态,那么就可以了,userInfo正确接收我的数据:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[PFPush handlePush:userInfo];
...
}

如果应用程序处于空闲状态,则会显示徽章和文本通知,但是:

如果我点击通知栏上的文字,应用程序就会启动,我会收到推送

如果我点击徽章,应用程序会启动,但didFinishLaunchingWithOptions中的launchOptions为空!

这是我对didFinishLaunchingWithOptions方法的测试代码:

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

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

    NSDictionary *aPushNotification = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
//    NSDictionary* aPushNotification = [launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];

    NSString *test = [aPushNotification objectForKey:@"_3Y"];

    [[[UIAlertView alloc] initWithTitle:test message:[aPushNotification description] delegate:NULL cancelButtonTitle:NSLocalizedString(@"LOC018", @"Ok") otherButtonTitles:nil, nil] show];
...
}

也许是解析问题?

任何帮助将不胜感激..

提前致谢!!

1 个答案:

答案 0 :(得分:10)

只有在通过通知启动应用程序的情况下才设置launchOptions,如果您通过不带参数的图标上的徽章启动它,则使用launchOptions = nil。