2015-01-23 4 views
1

Моего случая выглядит следующим образом:типов UIUserNotificationSettings возвращают неправильные значения

  1. Установить мое приложение
  2. Перейти к App настройке устройства и отключить уведомление толчка для моего приложения.
  3. Удалить Мое приложение
  4. Переустановите мое приложение и получить настройки программно, как показано ниже толчок уведомления:

    if ([[UIApplication sharedApplication]respondsToSelector:@selector(currentUserNotificationSettings)]){ 
         UIUserNotificationSettings *noticationSettings =  [[UIApplication sharedApplication] currentUserNotificationSettings]; 
          if (!noticationSettings || (noticationSettings.types == UIUserNotificationTypeNone)) { 
          return NO; 
         } 
        return YES; 
    } 
    

Но, notificationSettings.types всегда возвращает UIUserNotificationTypeNone хотя в App Настройки аппарата, установка уведомление является на. Может ли кто-нибудь помочь мне получить правильное значение настройки уведомления в этом случае?

ответ

2

Вы должны проверить

[[UIApplication sharedApplication] isRegisteredForRemoteNotifications] 

перед вызовом

[[UIApplication sharedApplication] currentUserNotificationSettings]; 

Вот правильный код:

if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications] == NO) 
     return NO; 
if ([[UIApplication sharedApplication]respondsToSelector:@selector(currentUserNotificationSettings)]){ 
     UIUserNotificationSettings *noticationSettings =  [[UIApplication sharedApplication] currentUserNotificationSettings]; 
      if (!noticationSettings || (noticationSettings.types == UIUserNotificationTypeNone)) { 
      return NO; 
     } 
    return YES; 
} 
1

кажется, что вызов [[UIApplication sharedApplication] currentUserNotificationSettings] перед вызовом [[UIApplication sharedApplication] registerUserNotificationSettings:] возвращает неправильное значение.

Смежные вопросы