美文网首页
iOS 跳转到指定的系统设置页面

iOS 跳转到指定的系统设置页面

作者: ZhangCc_ | 来源:发表于2018-03-30 15:59 被阅读333次

    iOS 10 干掉了所有系统设置的 URL Scheme,这意味着你再也不可以直接跳转到系统设置页面(比如 WiFi、蜂窝数据、定位等)。

    跳转方式

    方式一:prefs:root=某项服务 适用于 系统 < iOS10;
    NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];
    
    方式二:prefs:root=bundleID 适用于 iOS8 <= 系统 < iOS10
    NSURL *url = [NSURL URLWithString:@"prefs:root=bundleID"];
    
    方式三:UIApplicationOpenSettingsURLString 适用于 系统 >= iOS8的系统
    NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
    

    1、在项目中的info中添加 URL types,在URL Schemes 输入 prefs

    添加URL Types@2x.png

    2、在跳转事件里添加如下代码

    1、iOS >=10 都是跳转到设置页面
    (不推荐)NSURL *url = [NSURL URLWithString:@"app-Prefs:root=Bluetooth"] (虽然是有可能躲过苹果的检测,但是苹果如果发现你这样用了,app上架是有被拒的风险)
    (推荐)NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
        if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
        }
    
    2、iOS < 10.0
     NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];
        if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
        }
    
    注:app-Prefs和Prefs有区别,没有iOS 10以下的机子,没办法测试
    

    3、跳转目的地

    系统 <= iOS7, 只能跳转到 系统设置页面
    
    系统 >= iOS8,支持跳转到相应应用的设置界面中,使用prefs:root=bundleID
    
    系统 >= iOS10,支持跳转到自己应用设置,不支持跳转到系统设置
    

    4、对应的字段

    蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID 
    VPN: prefs:root=General&path=Network/VPN 
    Wi-Fi:prefs:root=WIFI 
    定位服务:prefs:root=LOCATION_SERVICES 
    个人热点: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=Brightness 
    蓝牙:prefs:root=General&path=Bluetooth 
    时间设置:prefs:root=General&path=DATE_AND_TIME 
    FaceTime:prefs:root=FACETIME 
    设置:prefs:root=General 
    键盘设置:prefs:root=General&path=Keyboard 
    iCloud:prefs:root=CASTLEiCloud 
    备份:prefs:root=CASTLE&path=STORAGE_AND_BACKUP 
    语言:prefs:root=General&path=INTERNATIONAL 
    定位:prefs:root=LOCATION_SERVICES 
    音乐:prefs:root=MUSICMusic 
    音乐均衡器:prefs:root=MUSIC&path=EQMusic 
    音量:prefs:root=MUSIC&path=VolumeLimit 
    网络:prefs:root=General&path=Network 
    Nike + iPod:prefs:root=NIKE_PLUS_IPOD 
    备忘录:prefs:root=NOTES 
    通知设置:prefs:root=NOTIFICATIONS_ID 
    电话:prefs:root=Phone 
    照片和相机:prefs:root=Photos 
    描述文件:prefs:root=General&path=ManagedConfigurationList 
    还原:prefs:root=General&path=Reset 
    Safari:prefs:root=Safari 
    Siri:prefs:root=General&path=Assistant 
    声音:prefs:root=Sounds 
    软件更新:prefs:root=General&path=SOFTWARE_UPDATE_LINK 
    iTunes Store和App Store:prefs:root=STORET 
    twitter:prefs:root=TWITTER 
    用量:prefs:root=General&path=USAGE 
    墙纸:prefs:root=Wallpaper
    
    注:硬要在iOS 10系统中打开系统的Wi-Fi界面

    可以参考:Network Extension
    https://www.jianshu.com/p/5072a8485ceb

    相关文章

      网友评论

          本文标题:iOS 跳转到指定的系统设置页面

          本文链接:https://www.haomeiwen.com/subject/zqeicftx.html