iOS应用内跳转到指定系统设置页

APP的跳转: 通过[ [UIApplication sharedApplication] openURL:url]这种方法来实现的。

iOS 10以后跳转设置页要用

[[UIApplication sharedApplication] openURL:url参数 options:options字典参数 completionHandler:^(BOOL success) {

}];

 

如果我们想从应用bundleID:com.app.app的APP内跳转到系统设置中该应用的设置:

[[UIApplication sharedApplication]openURL:[NSURLURLWithString:@"prefs:root=com.app.app"]];

跳转url为prefs:root=com.app.app"所以如果你想跳转到具体某个应用的设置,就必须知道该应用的bundleID

再例如,如果跳转到通知设置中该应用的设置:
跳转url为:prefs:root=NOTIFICATIONS_ID&&path=com.app.app

 

URL Scheme

URL Scheme 就是实现跳转URL协议的名称(可以多个)。
而APP的跳转就需要设置“URL Schemes”来实现:

 

跳转到本应用的设置页面

if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {

    NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

    [[UIApplication sharedApplication]openURL:url options:@{} completionHandler:^(BOOL success) {

        

    }];

}else{

  //[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]] 应用标识

    NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@"prefs:root=%@",[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]]];

    [[UIApplication sharedApplication]openURL:url];

}

 

以下指令 分别跳转到 对应页面:

prefs:root=General&path=About
prefs:root=General&path=ACCESSIBILITY
prefs:root=AIRPLANE_MODE
prefs:root=General&path=AUTOLOCK
prefs:root=General&path=USAGE/CELLULAR_USAGE
prefs:root=Brightness //打开Brightness(亮度)设置界面
prefs:root=Bluetooth //打开蓝牙设置
prefs:root=General&path=DATE_AND_TIME //日期与时间设置
prefs:root=FACETIME //打开FaceTime设置
prefs:root=General //打开通用设置
prefs:root=General&path=Keyboard //打开键盘设置
prefs:root=CASTLE //打开iClound设置
prefs:root=CASTLE&path=STORAGE_AND_BACKUP //打开iCloud下的储存空间
prefs:root=General&path=INTERNATIONAL //打开通用下的语言和地区设置
prefs:root=LOCATION_SERVICES //打开隐私下的定位服务
prefs:root=ACCOUNT_SETTINGS
prefs:root=MUSIC //打开设置下的音乐
prefs:root=MUSIC&path=EQ //打开音乐下的均衡器
prefs:root=MUSIC&path=VolumeLimit //打开音乐下的音量
prefs:root=General&path=Network //打开通用下的网络
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 //打开通用下的还原设置
prefs:root=Sounds&path=Ringtone
prefs:root=Safari //打开设置下的safari设置
prefs:root=General&path=Assistant //打开siri不成功
prefs:root=Sounds //打开设置下的声音设置
prefs:root=General&path=SOFTWARE_UPDATE_LINK //打开通用下的软件更新
prefs:root=STORE //打开通用下的iTounes Store和App Store设置
prefs:root=TWITTER //打开设置下的twitter设置
prefs:root=FACEBOOK //打开设置下的Facebook设置
prefs:root=General&path=USAGE //打开通用下的用量
prefs:root=VIDEO prefs:root=General&path=Network/VPN //打开通用下的vpn设置
prefs:root=Wallpaper //打开设置下的墙纸设置
prefs:root=WIFI //打开wifi设置
prefs:root=INTERNET_TETHERING
 
而在iOS10以上的系统,则不会响应以上的跳转方法



App-Prefs:root

iOS10支持的下放的所有跳转,当然iOS 10以下版本也支持

跳转的URL写法:


无线局域网 App-Prefs:root=WIFI
蓝牙 App-Prefs:root=Bluetooth
蜂窝移动网络 App-Prefs:root=MOBILE_DATA_SETTINGS_ID
个人热点 App-Prefs:root=INTERNET_TETHERING
运营商 App-Prefs:root=Carrier
通知 App-Prefs:root=NOTIFICATIONS_ID
通用 App-Prefs:root=General
通用-关于本机 App-Prefs:root=General&path=About
通用-键盘 App-Prefs:root=General&path=Keyboard
通用-辅助功能 App-Prefs:root=General&path=ACCESSIBILITY
通用-语言与地区 App-Prefs:root=General&path=INTERNATIONAL
通用-还原 App-Prefs:root=Reset
墙纸 App-Prefs:root=Wallpaper
Siri App-Prefs:root=SIRI
隐私 App-Prefs:root=Privacy
Safari App-Prefs:root=SAFARI
音乐 App-Prefs:root=MUSIC
音乐-均衡器 App-Prefs:root=MUSIC&path=com.apple.Music:EQ
照片与相机 App-Prefs:root=Photos
FaceTime App-Prefs:root=FACETIME

 

使用例子:

NSString * urlStr = @"App-Prefs:root=General&path=About";

if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {

    NSURL * url = [NSURL URLWithString:urlStr];

    [[UIApplication sharedApplication]openURL:url options:@{} completionHandler:^(BOOL success) {

        

    }];

}else{

    NSURL * url = [NSURL URLWithString:urlStr];

    [[UIApplication sharedApplication]openURL:url];

}

 

posted @ 2016-11-24 18:57  LiLM  阅读(2314)  评论(0编辑  收藏  举报