简体   繁体   中英

Push Notifications doesn't always trigger methods in iOS7

I'm receiving notifications using this method:

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadComments" object:nil];
}

That trigger this method:

- (void) reloadComments:(NSNotification *)notification{

    NSDictionary* dict = [notification.userInfo objectForKey:@"commentNotification"];
    NSString* video_id = [[[dict objectForKey:@"aps"] objectForKey:@"custom"] objectForKey:@"data"];

    NSData* cData = [video_id dataUsingEncoding:NSUTF8StringEncoding];
    NSError *errorJson2;
    NSMutableDictionary *response = [NSJSONSerialization JSONObjectWithData:cData options:kNilOptions error:&errorJson2];

    int number = [[commentsDictionary objectForKey:[NSString stringWithFormat:@"%@", [response objectForKey:@"video_id"]]] intValue];

    number += 1;
    [commentsDictionary setObject:[NSNumber numberWithInt:number] forKey:[NSString stringWithFormat:@"%@", [response objectForKey:@"video_id"]]];
}

I'm parsing the result and incrementing the number . This works correctly when i launch the app, in my device, through XCode. If i send 5 push notifications the number is 5.

If i do the same procedure without launching the app through XCode, the number is not correctly incremented.

Anyone has any experience with this and can point me in the right direction?

I added the completionHandler below and it started working.

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    [self parsePushNotifications:userInfo];
    completionHandler(UIBackgroundFetchResultNewData);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM