Я пытаюсь поддерживать iOS 10 и выше, используя решение, предоставленное @Shaheen Ghiassy, но нахожу проблему депривации enabledRemoteNotificationTypes
. Итак, решение, которое я нахожу, используя isRegisteredForRemoteNotifications
вместо enabledRemoteNotificationTypes
, которое устарело в iOS 8. Ниже приводится мое обновленное решение, которое отлично сработало для меня:
- (BOOL)notificationServicesEnabled {
BOOL isEnabled = NO;
if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]){
UIUserNotificationSettings *notificationSettings = [[UIApplication sharedApplication] currentUserNotificationSettings];
if (!notificationSettings || (notificationSettings.types == UIUserNotificationTypeNone)) {
isEnabled = NO;
} else {
isEnabled = YES;
}
} else {
if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]) {
isEnabled = YES;
} else{
isEnabled = NO;
}
}
return isEnabled;
}
И мы можем легко вызвать эту функцию и получить доступ к ее значению Bool
и можем преобразовать ее в строковое значение следующим образом:
NSString *str = [self notificationServicesEnabled] ? @"YES" : @"NO";
Надеюсь, это поможет и другим :)
Удачного кодирования.