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

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

推荐阅读更多精彩内容