Is there any known problem issue with:
application:didReceiveLocalNotification delegate
on iOS 8?
My application creates local notifications using UILocalNotification
. When application is in background I get notifications, and when I click on the notification banner, it moves to my app. But this method:
-(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
is never called on iOS 8(Xcode 5.1.1), but works well on iOS 7 or earlier.
P.S. I've also tested project from this site: http://www.appcoda.com/ios-programming-local-notification-tutorial/ and it doesn't work on iOS 8.
Actually, the solution on iOS 8 is to request authorization for notifications settings to the user, otherwise the delegate method -didReceiveLocalNotification: will never be called. You can do so by adding this code to the -didFinishLaunchingWithOptions: method:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
categories:nil]];
}
This will show the user an alert view asking for permission to display notifications. If she accepts, the delegate method will be called whenever a local notification is fired.
Use this for iOS8
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void(^)())completionHandler{
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With