Megpróbálom beállítani az alkalmazásomat, hogy amikor leküldéses üzenet érkezik, először lekéri az új üzeneteket, mielőtt megjeleníti a push értesítést. A push értesítésemben a content-available = 1 beállítás van beállítva, valamint a Plistben engedélyezve vannak a kapcsolók. Megvalósítottam:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{
if([[userInfo objectForKey:@"aps"] objectForKey:@"content-available"]){
NSLog(@"Doing the background refresh");
UINavigationController *navigationController=(UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController];
MYViewController *MYViewController = (MYViewController *)[[navigationController viewControllers] objectAtIndex:1];
[myViewController.currentUser refreshMessagesArrayWithCompletionHandler:^(BOOL successful, BOOL newMiaos) {
NSLog(@"messages refreshed the array now has %lu messages",(unsigned long)[myViewController.currentUser.messages count]);
handler(UIBackgroundFetchResultNewData);
}];
}
}
Az alkalmazás leküldése a háttérbefejezés befejezése előtt vagy a frissítés során érkezik meg. Biztosan be kell jönnie utána. Rosszul kezelem ezt? Kell helyette csendes push értesítést küldenem, és a befejezési blokk után local
értesítést kell mutatnom?
data-id
-t, majd kérnie kell a háttérrendszeréhez, és megkapnia az üzenetet. 11.06.2015