iOS开发-iOS8.0之后获取用户通知权限
2017-06-27 17:52
260 查看
现如今的iOS开发中,除了大厂的老程序还需要兼容iOS8之前的系统版本之外,新项目基本都只支持到iOS 8 了, 这就意味着之前版本获取用户通知权限的方式不再试用,系统文件是这么描述的
// Returns the enabled types, also taking into account any systemwide settings; doesn't relate to connectivity.
- (UIRemoteNotificationType)enabledRemoteNotificationTypes NS_DEPRECATED_IOS(3_0, 8_0, "Use -[UIApplication isRegisteredForRemoteNotifications] and UserNotifications Framework's -[UNUserNotificationCenter getNotificationSettingsWithCompletionHandler:] to retrieve user-enabled remote notification and user notification settings") __TVOS_PROHIBITED;
这个属性在iOS 8之后便不再被支持,因此我们也不好再通过该属性进行通知权限的获取。
iOS 8之后获取通知权限的方法是:
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings];
/*
settings.types 有以下几种状态
0 => none 不允许通知 UIUserNotificationTypeNone
1 => badge 只允许应用图标标记 UIUserNotificationTypeBadge
2 => sound 只允许声音 UIUserNotificationTypeBadge
3 => sound + badge 允许声音+应用图标标记
4 => alert 只允许提醒 UIUserNotificationTypeAlert
5 => alert + badge 允许提醒+应用图标标记
6 => alert + sound 允许提醒+声音
7 => alert + sound + badge 三种都允许
*/
于是,获取后,我们就可通过types的值来判断用户是否开启了允许通知和开启的何种通知,之后的操作就请大家按自己需要进行了,这里再加一个跳转到设置里打开自己程序对应设置项的步骤:
NSURL *settingURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:settingURL];
这里所有操作仅限于iOS 8之后,如果项目需要兼容之前版本,请自行查找其他文章。
// Returns the enabled types, also taking into account any systemwide settings; doesn't relate to connectivity.
- (UIRemoteNotificationType)enabledRemoteNotificationTypes NS_DEPRECATED_IOS(3_0, 8_0, "Use -[UIApplication isRegisteredForRemoteNotifications] and UserNotifications Framework's -[UNUserNotificationCenter getNotificationSettingsWithCompletionHandler:] to retrieve user-enabled remote notification and user notification settings") __TVOS_PROHIBITED;
这个属性在iOS 8之后便不再被支持,因此我们也不好再通过该属性进行通知权限的获取。
iOS 8之后获取通知权限的方法是:
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings];
/*
settings.types 有以下几种状态
0 => none 不允许通知 UIUserNotificationTypeNone
1 => badge 只允许应用图标标记 UIUserNotificationTypeBadge
2 => sound 只允许声音 UIUserNotificationTypeBadge
3 => sound + badge 允许声音+应用图标标记
4 => alert 只允许提醒 UIUserNotificationTypeAlert
5 => alert + badge 允许提醒+应用图标标记
6 => alert + sound 允许提醒+声音
7 => alert + sound + badge 三种都允许
*/
于是,获取后,我们就可通过types的值来判断用户是否开启了允许通知和开启的何种通知,之后的操作就请大家按自己需要进行了,这里再加一个跳转到设置里打开自己程序对应设置项的步骤:
NSURL *settingURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:settingURL];
这里所有操作仅限于iOS 8之后,如果项目需要兼容之前版本,请自行查找其他文章。
相关文章推荐
- iOS开发-检测用户截屏, 并获取所截图片
- IOS开发---获取用户当前地理坐标
- iOS 10 开发之权限Crash 相机相册等权限的使用、检测并引导用户开启权限
- 全栈工程师之路-中级篇之小程序开发-第三章第五节获取用户权限、下载文件、保存到相册、用户拒绝授权重新授权
- iOS 激活APP时通知APP开始获取用户位置
- IOS开发实例-获取用户当前地理坐标
- iOS谷歌原生地图开发[用户定位获取不到除了并不有效的KOV外]独家解决方案
- iOS开发之判断用户是否打开APP通知开关
- iOS开发之判断用户是否打开APP通知开关
- iOS开发-检测用户截屏, 并获取所截图片
- IOS开发之——OpenUDID的使用获取用户唯一设备
- ios-新浪微博开发-21-获取用户昵称
- iOS开发-检测用户截屏, 并获取所截图片
- ios开发,用户登录界面,输入用户名之后点击Next后切换到密码输入框,密码输入框输入后点击Return,键盘回收
- IOS开发---获取用户当前地理坐标(最新)
- iOS开发swift如何调用系统相册和相机获取图片设置用户头像
- 以带数字的小圆点方式显示在桌面图标上面,通知用户有新的消息--iOS开发
- iOS swift 获取对应APP定位权限是否打开并引导用户打开
- iOS开发技巧之:iOS 10获取相册权限崩溃crash解决方法