UIApplication跳转iPhone设置页面
调用跳转设置页面的方法如下
- (void)openURL:(NSURL *)url {
if ([[UIApplication sharedApplication] canOpenURL:url]) {
if ([[UIDevice currentDevice].systemVersion floatValue] < 10.0) {
[[UIApplication sharedApplication] openURL:url];
}else {
//iOS10以上调用这个方法 options中参数含义有待观察
[[UIApplication sharedApplication]
openURL:url options:@{
UIApplicationOpenURLOptionsOpenInPlaceKey : @"0",
UIApplicationOpenURLOptionsSourceApplicationKey: @"com.xxx.www"
} completionHandler:^(BOOL success) {
NSAssert(!success, @"调用失败");
}];
}
}
}
跳转到当前APP的设置页
[self openURL:UIApplicationOpenSettingsURLString];
iOS10以上只能跳自己APP的设置页,如果调用未公开的方法将会影响审核,但是也有办法解决。利用ASCII值对URL进行拼装组合,可以绕过苹果的审核
- (void)openPrivateURL:(NSURL *)url {
url=[NSURL URLWithString:@"Prefs:root=General&path=About"];
Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
[[LSApplicationWorkspace performSelector:NSSelectorFromString(@"defaultWorkspace")] performSelector:NSSelectorFromString(@"openSensitiveURL:withOptions:") withObject:url withObject:nil]
[self openPrivateURL:url];
}
当然我们不鼓励这种行为,因为用的人多了,很容易引起苹果的注意。
以下是跳转苹果设置的url,在app中使用将影响审核,慎用
@"Prefs:root=General&path=About",//关于本机
@"Prefs:root=General&path=ACCESSIBILITY",//辅助功能
@"Prefs:root=AIRPLANE_MODE",//飞行模式
@"Prefs:root=General&path=AUTOLOCK",//自动锁定
@"Prefs:root=General&path=DATE_AND_TIME",//日期与时间
@"Prefs:root=FACETIME",//faceTime
@"Prefs:root=General&path=Keyboard",//键盘
@"Prefs:root=CASTLE",//iCloud
@"Prefs:root=CASTLE&path=STORAGE_AND_BACKUP",//存储空间
@"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=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=General&path=Assistant",
@"Prefs:root=Sounds",//声音
@"Prefs:root=General&path=SOFTWARE_UPDATE_LINK",//软件更新
@"Prefs:root=STORE",//app store
@"Prefs:root=TWITTER",
@"Prefs:root=General&path=USAGE",
@"Prefs:root=VIDEO",//视频
@"Prefs:root=General&path=Network/VPN",
@"Prefs:root=Wallpaper",//墙纸
@"Prefs:root=WIFI",//wifi
@"Prefs:root=INTERNET_TETHERING",//个人热点
@"Prefs:root=Bluetooth";//蓝牙
还有几种系统级的方法
打开email
[[self openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];
打开Safari
[self openURL:[NSURL URLWithString:@"http://coder-lee.lofter.com/"]];
打开短信
[self openURL:[NSURL URLWithString:@"sms://10086"]];
拨打电话
[self openURL:[NSURL URLWithString:@"tel://10086"]];