iOS10 和iOS10以前 是两个概念
iOS跳转系统设置界面,分为iOS10和iOS10之前两种方法:
iOS10之前:
方法:对于iOS10之前,其跳转方法莫过于openURL,可参见UIApplication.h。

从其头文件,可见其方法,适用于iOS2.0~iOS10.0。(iOS10.0及之后的版本,并没有说放弃,说是建议使用新的方法openURL:options。)
用法:
//url -- 跳转设置-通用界面
NSURL*url=[NSURL URLWithString:@"prefs:root=General"];
//如果能够打开,则打开url
if ([[UIApplication sharedApplication]canOpenURL:url]) {
[[UIApplication sharedApplication]openURL:url];
}
以上方法,会打开设置-通用界面。其它页面,以此类推。
iOS10之后:
方法:对于iOS10及以后,我们可以用新的跳转方法openURL:options:可参见UIApplication.h。

对于options,目前来说,可直接传一个空字典。跳转结果的回调,则是在block里完成。
用法:
其用法基本不变,需要注意的是:其url需要添加App-,并且Prefs首字母需大写。
//url -- 跳转设置-通用界面
NSURL*url=[NSURL URLWithString:@"App-Prefs:root=General"];
//如果能够打开,则打开url
if ([[UIApplication sharedApplication]canOpenURL:url]) {
[[UIApplication sharedApplication]openURL:url options:@{} completionHandler:^(BOOL success) {
if (success) {
NSLog(@"成功");
}
}];
}
URL:
| 跳转 | 写法 |
| WiFi设置 | root=WIFI |
|
蓝牙设置 | root=Bluetooth |
| 蜂窝数据 | root=MOBILE_DATA_SETTINGS_ID |
| 个人热点 | root=INTERNET_TETHERING |
| 通知 | root=NOTIFICATIONS_ID |
| 通用 | root=General |
| 显示与亮度 | root=DISPLAY |
| 壁纸 | root=Wallpaper |
| 声音 | root=Sounds |
| 电池电量 | root=BATTERY_USAGE |
| 隐私 | root=Privacy |
| iCloud | root=CASTLE |
| iCloud备份 | root=CASTLE&path=BACKUP |
| iTunesStore与AppStore | root=STORE |
| 存储空间 | root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE |
| VPN | root=General&path=VPN |
| 定位设置 | root=Privacy&path=LOCATION |
| 软件更新 | root=General&path=SOFTWARE_UPDATE_LINK |
| 关于本机 | root=General&path=About |
| 辅助功能 | root=General&path=ACCESSIBILITY |
| 键盘设置 | root=General&path=Keyboard |
| 日期与时间 | root=General&path=DATE_AND_TIME |
| 语言 | root=General&path=INTERNATIONAL |
| 描述文件 | root=General&path=ManagedConfigurationList |
| 还原 | root=General&path=Reset |
| CarPlay | root=General&path=CARPLAY |
| FaceTime | root=FACETIME |
| 音乐 | root=MUSIC |
| 照片与相机 | root=Photos |
| 电话设置 | root=Phone |
| Notes | root=NOTES |
| root=TWITTER | |
| 拨打电话 | tel://10010 |
| 发送短信 | sms://10010 |
| 发送邮件 | mailto://1178752402@qq.com |
| 打开网址 | https://www.caichenghan.com |
补充
跳转到自己app权限页面:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication]canOpenURL:url]) {
[[UIApplication sharedApplication]openURL:url options:[NSDictionary dictionary] completionHandler:^(BOOL success) {
if (success) {
NSLog(@"成功");
}
}];
}
除此之外,还可通过设定app的bundle id进行跳转。
NSURL *url = [NSURL URLWithString:@"App-Prefs:root=com.jiadai.DemoOfAppTransform"];
if ([[UIApplication sharedApplication]canOpenURL:url]) {
[[UIApplication sharedApplication]openURL:url options:[NSDictionary dictionary] completionHandler:^(BOOL success) {
if (success) {
NSLog(@"成功");
}
}];
}
该方法,在iOS10.2.1/iPhone5s测试时发现:若设置已经被打开过,则可顺利跳转,否则第一次执行的时候会进入设置页面,而后才可以进入权限页面。
243

被折叠的 条评论
为什么被折叠?



