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
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