Für iOS 8 und 9, wenn die Anwendung im Hintergrund ist, wenn eine Push-Benachrichtigung empfangen wird, kann ich die Informationen in der App speichern. Aber für iOS 10 kann ich die Informationen nicht abrufen, wenn sich die App im Hintergrund befindet. Aber nur wenn ich die Benachrichtigung öffne/klicke, wird userNotification centerDidReceiveNotificationResponse aufgerufen.Zugriff auf Push-Benachrichtigungen nicht möglich, wenn App im Hintergrund für iOS 10 ist
Für iOS 8 & 9, das funktioniert gut.
-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
// iOS 10 will handle notifications through other methods
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0"))
{
NSLog(@"iOS version >= 10. Let NotificationCenter handle this one.");
// set a member variable to tell the new delegate that this is background
return;
}
NSLog(@"HANDLE PUSH, didReceiveRemoteNotification: %@", userInfo);
// custom code to handle notification content
if([UIApplication sharedApplication].applicationState == UIApplicationStateInactive)
{
NSLog(@"INACTIVE");
completionHandler(UIBackgroundFetchResultNewData);
}
else if([UIApplication sharedApplication].applicationState == UIApplicationStateBackground)
{
NSLog(@"BACKGROUND");
completionHandler(UIBackgroundFetchResultNewData);
}
else
{
NSLog(@"FOREGROUND");
completionHandler(UIBackgroundFetchResultNewData);
}
}
Für iOS 10 die Methode nicht aufgerufen wird,
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
NSLog(@"Handle push from foreground");
// custom code to handle push while app is in the foreground
NSLog(@"%@", notification.request.content.userInfo);
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)())completionHandler
{
NSLog(@"Handle push from background or closed");
// if you set a member variable in didReceiveRemoteNotification, you will know if this is from closed or background
NSLog(@"%@", response.notification.request.content.userInfo);
}
aktivieren Remote-Benachrichtigung im Hintergrund Modi Fähigkeiten –
@KevinMac Ich habe aktiviert – Sharon
haben Sie das UNUserNotificationCenter und seine Delegate konfiguriert? @Sharon –