(iOS8中 用户开启的推送通知类型 对应的是 UIUserNotificationType (下边代码中 UIUserNotificationSettings 的types属性的类型) ,iOS7对应的是UIRemoteNotificationType)

iOS - 判断用户是否允许推送通知

那么如何获得呢,在iOS8中是通过types属性,[[UIApplication sharedApplication] currentUserNotificationSettings].types

如果用户没有允许推送,types的值必定为0

1 /**
 2  *  check if user allow local notification of system setting
 3  *
 4  *  @return YES-allowed,otherwise,NO.
 5  */
 6 + (BOOL)isAllowedNotification {
 7     //iOS8 check if user allow notification
 8     if ([UIDevice isSystemVersioniOS8]) {// system is iOS8
 9         UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
10         if (UIUserNotificationTypeNone != setting.types) {
11             return YES;
12         }
13     } else {//iOS7
14         UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
15         if(UIRemoteNotificationTypeNone != type)
16             return YES;
17     }
18     
19     return NO;
20 }

下面这个方法我是添加在UIDecive的Category中的,用于判断当前系统版本是大于iOS8还是小于iOS8的

 1 /**
 2  *  check if the system version is iOS8
 3  *
 4  *  @return YES-is iOS8,otherwise,below iOS8
 5  */
 6 + (BOOL)isSystemVersioniOS8 {
 7     //check systemVerson of device
 8     UIDevice *device = [UIDevice currentDevice];
 9     float sysVersion = [device.systemVersion floatValue];
10     
11     if (sysVersion >= 8.0f) {
12         return YES;
13     }
14     return NO;
15 }

 

相关文章:

  • 2021-11-09
  • 2021-07-01
  • 2021-11-13
  • 2022-02-27
  • 2022-12-23
  • 2021-10-19
  • 2021-11-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-13
  • 2022-12-23
  • 2022-01-05
  • 2021-07-13
  • 2022-12-23
相关资源
相似解决方案