How to update code using enabledRemoteNotificationTypes because it is “not supported in iOS 8”?

前端 未结 3 2100
情书的邮戳
情书的邮戳 2020-12-15 09:11

this is the code i used for the RemoteNotificationType:

NSUInteger rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
相关标签:
3条回答
  • 2020-12-15 09:37

    Use with this condition to give support in both iOS 7 and prior iOS 8

    #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
    
    NSUInteger rntypes;
      if (!SYSTEM_VERSION_LESS_THAN(@"8.0")) {
       rntypes = [[[UIApplication sharedApplication] currentUserNotificationSettings] types];
    }else{
       rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
    }
    
    0 讨论(0)
  • 2020-12-15 09:50

    Please use following methods -

    [[UIApplication sharedApplication] isRegisteredForRemoteNotifications]
    

    or

    [[UIApplication sharedApplication] currentUserNotificationSettings]
    

    to retrieve user-enabled remote notification and user notification settings in iOS 8.

    0 讨论(0)
  • 2020-12-15 10:00

    You can also use this code:

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]) {
    
        UIUserNotificationType types = [[[UIApplication sharedApplication] currentUserNotificationSettings] types];
    
        if (types == UIUserNotificationTypeNone) {
            // Do something
        }
    
    } else {
    
        UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
    
        if (types == UIRemoteNotificationTypeNone) {
            // Do something
        }
    }
    

    Or this one if you only want to check the user is registered for remote notifications:

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) {
    
        BOOL isRegisteredForRemoteNotifications = [[UIApplication sharedApplication] isRegisteredForRemoteNotifications];
    
        if (isRegisteredForRemoteNotifications) { 
            // Do something
        }
    
    } else {
    
        UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
    
        if (types == UIRemoteNotificationTypeNone) {
            // Do something
        }
    }
    
    0 讨论(0)
提交回复
热议问题