iOS检测应用推送功能的状态及进入系统应用设置中心

前言

刚刚遇到一个需求,需要在App中设置各种模块的推送功能的特定限制功能。于是为了完善用户的体验,在设置的时候需要对该应用是否被用户授权使用远程推送功能进行同步,这就需要我们去检测系统是否打开推送功能,以及进行甜系统应用中心进行设置的相关问题。

远程推送
检测当前应用是否开启了远程推送功能
  1. 系统版本号 < 8.0
 // NS_DEPRECATED_IOS(3_0, 8_0, ...)
if ([[UIApplication sharedApplication] enabledRemoteNotificationTypes]  == UIRemoteNotificationTypeNone) {
    //远程推送关闭状态
 }
  1. 系统版本号 >= 8.0
 // NS_DEPRECATED_IOS(8_0, 10_0, ...)
 if ([[UIApplication sharedApplication] currentUserNotificationSettings].types  == UIRemoteNotificationTypeNone) {
        NSLog(@" ======= 关闭了远程推送 ");
    }

虽然显示的是 (8_0, 10_0),但我在9.3系统和11.0的系统上都是正确可用的。

调转到通知设置中心让用户授权使用

1.跳转到应用设置

   NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
//        NSURL *url = [NSURL URLWithString:@“app-settings:”];
//  运行时发现UIApplicationOpenSettingsURLString的值就是 "app-settings:",固定写死了也可以跳转 

  if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
      }

2.在iOS 8.0,iOS 9.0 上,直接跳转到应用通知中心

NSURL *url = [NSURL URLWithString:@"prefs:root=NOTIFICATIONS_ID&path=应用的boundleId"];
  if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
     } 

只支持iOS8,iOS9系统!在iOS7系统上,仅仅只是跳转到设置应用。而在iOS10系统及以上系统笨不会跳转。

由此引发了我对进入系统应用设置中心的相关知识总结

进入系统应用设置中心

设置跳转有三种方式,每一种的使用场景都不同。 并且你在跳转到系统中自己应用下面设置的时候,你的应用要提前至少申请了某一个权限,如通知,定位等。否则,会引起崩溃。

  1. prefs:root=某项服务
  2. prefs:root=bundleID
  3. UIApplicationOpenSettingsURLString

注:
方法1 适用于小于iOS10.0系统有效
方法2 大于等于iOS8系统,小于iOS10的系统,即 iOS 8.0 和 iOS9.0 专用
方法3 适用于iOS8及以上的系统 即大于等于iOS8的系统

关于某项服务的相关问题配置

关于本机:prefs:root=General&path=About
软件升级:prefs:root=General&path=SOFTWARE_UPDATE_LINK
日期时间:prefs:root=General&path=DATE_AND_TIME
Accessibility:prefs:root=General&path=ACCESSIBILITY
键盘设置:prefs:root=General&path=Keyboard
VPN:prefs:root=General&path=VPN
壁纸设置:@”prefs:root=Wallpaper
APP Store:prefs:root=STORE
还原设置:prefs:root=General&path=Reset
应用通知:prefs:root=NOTIFICATIONS_ID&path=应用的boundleId

系统设置:prefs:root=INTERNET_TETHERING
WIFI设置:prefs:root=WIFI
蓝牙设置:prefs:root=Bluetooth
系统通知:prefs:root=NOTIFICATIONS_ID
通用设置:prefs:root=General
显示设置:prefs:root=DISPLAY&BRIGHTNESS
壁纸设置:prefs:root=Wallpaper
声音设置:prefs:root=Sounds
隐私设置:prefs:root=privacy
蜂窝网路:prefs:root=MOBILE_DATA_SETTINGS_ID
音乐:prefs:root=MUSIC
APP Store:prefs:root=STORE
Notes:prefs:root=NOTES
Safari:prefs:root=Safari
Music:prefs:root=MUSIC
photo”:prefs:root=Photos


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值