Как проверить, что уведомления включены на iPhone - PullRequest
5 голосов
/ 25 января 2012

Как проверить, что уведомление включено на iPhone? Я устанавливаю приложение, приложение говорит, чтобы подтвердить включение push-уведомлений для приложения, я нажимаю ОК. Но если уведомление отключено на iPhone, это действие не включает уведомления. Как это проверить?

Ответы [ 2 ]

8 голосов
/ 25 января 2012

Это должно работать:

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types == UIRemoteNotificationTypeNone) 
   // Disabled
3 голосов
/ 05 марта 2015

Это изменилось в iOS8.Для поддержки iOS8 и ниже сделайте

+ (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 {
        UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if (types & UIRemoteNotificationTypeAlert) {
            isEnabled = YES;
        } else{
            isEnabled = NO;
        }
    }

    return isEnabled;
}
...