The following method keeps returning the same value:
[[UIApplication sharedApplication] isRegisteredForRemoteNotifications];
Every time this code runs, the results is YES. Even when I go into the "Settings" app and set push notifications to "off" for my app, when the code above runs, it evaluates to YES.
Other details: * I'm running the app on got an iphone that has iOS 8.1.3 * I'm running the app in Xcode 6.1 and I've got the phone physically attached to my machine
Any idea why the value of "isRegisteredForRemoteNotifications" doesn't change?
Because iOS 8 does register the device and provides a Token even if the user opts out from pushes.
In that case pushes are not presented to the user when the push is sent, but if your app is running it gets the payload so you can update it when the app is running...
To check if push notifications are enabled in iOS 8 you should check for the enabled user notification types:
- (BOOL)pushNotificationsEnabled {
if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]) {
UIUserNotificationType types = [[[UIApplication sharedApplication] currentUserNotificationSettings] types];
return (types & UIUserNotificationTypeAlert);
}
else {
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
return (types & UIRemoteNotificationTypeAlert);
}
}
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