最近又遇到需要检测通知权限是否开启的功能,之前也做过,这次是想发出来以后也不用去翻之前的代码了,直接看博客就可以了。
先说下场景吧,APP适配8.0及以上,想来现在马上iOS11都要出来了,适配到8我感觉已经不低了,毕竟不是大体量的APP,不能跟QQ微信比。
// 这里8.0之前是用 [[UIApplication sharedApplication] enabledRemoteNotificationTypes] 进行判断的
if ([[UIApplication sharedApplication] currentUserNotificationSettings].types == UIUserNotificationTypeNone) {
// 这里为了保险起见还是进行了一下判断,此处包含iOS 8
if (iOS8Later) {
// 此处的 'UIApplicationOpenSettingsURLString' 可以直接跳转到本APP的设置页面
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
}
}
如果不需要跳转至APP的权限设置界面请往下看:
需要区分版本
iOS 10
Wi-Fi: App-Prefs:root=WIFI
蓝牙: App-Prefs:root=Bluetooth
蜂窝移动网络: App-Prefs:root=MOBILE_DATA_SETTINGS_ID
个人热点: App-Prefs:root=INTERNET_TETHERING
运营商: App-Prefs:root=Carrier
通知: App-Prefs:root=NOTIFICATIONS_ID
通用: App-Prefs:root=General
通用-关于本机: App-Prefs:root=General&path=About
通用-键盘: App-Prefs:root=General&path=Keyboard
通用-辅助功能: App-Prefs:root=General&path=ACCESSIBILITY
通用-语言与地区: App-Prefs:root=General&path=INTERNATIONAL
通用-还原: App-Prefs:root=Reset
墙纸: App-Prefs:root=Wallpaper
Siri: App-Prefs:root=SIRI
隐私: App-Prefs:root=Privacy
定位: App-Prefs:root=LOCATION_SERVICES
Safari: App-Prefs:root=SAFARI
音乐: App-Prefs:root=MUSIC
音乐-均衡器: App-Prefs:root=MUSIC&path=com.apple.Music:EQ
照片与相机: App-Prefs:root=Photos
FaceTime: App-Prefs:root=FACETIME
iOS 10前
WiFi prefs:root=WIFI
个人热点 prefs:root=INTERNET_TETHERING
关于本机 prefs:root=General&path=About
辅助功能 prefs:root=General&path=ACCESSIBILITY
飞行模式 prefs:root=AIRPLANE_MODE
自动锁定 prefs:root=General&path=AUTOLOCK
蓝牙 prefs:root=Bluetooth
日期与时间 prefs:root=General&path=DATE_AND_TIME
FaceTime prefs:root=FACETIME
通用 prefs:root=General
键盘 prefs:root=General&path=Keyboard
iCloud prefs:root=CASTLE
iCloud存储空间 prefs:root=CASTLE&path=STORAGE_AND_BACKUP
语言与地区 prefs:root=General&path=INTERNATIONAL
定位服务 prefs:root=LOCATION_SERVICES
邮件、通讯录、日历 prefs:root=ACCOUNT_SETTINGS
音乐 prefs:root=MUSIC
音乐 prefs:root=MUSIC&path=EQ
音乐 prefs:root=MUSIC&path=VolumeLimit
备忘录 prefs:root=NOTES
通知 prefs:root=NOTIFICATIONS_ID
电话 prefs:root=Phone
照片与相机 prefs:root=Photos
描述文件 prefs:root=General&path=ManagedConfigurationList
还原 prefs:root=General&path=Reset
电话铃声 prefs:root=Sounds&path=Ringtone
Safari prefs:root=Safari
声音 prefs:root=Sounds
软件更新 prefs:root=General&path=SOFTWARE_UPDATE_LINK
App Store prefs:root=STORE
Twitter prefs:root=TWITTER
视频 prefs:root=VIDEO
VPN prefs:root=General&path=VPN
墙纸 prefs:root=Wallpaper