1)私有方法跳转

/**

私有方法,不建议使用

利用ASCII值进行拼装组合方法。这样可绕过审核。

上面是进入蓝牙界面的方法。也可以有其他的页面可以跳转。设置页面是@"@"Prefs:root=TETHERING",wifi是@"Prefs:root=WIFI"。注意Prefs的P是大写。这么写也有弊端,如果苹果的未公开方法一旦修改。我们必须重新进行修改。

*/

NSString * defaultWork = [self getDefaultWork];

NSString * bluetoothMethod = [self getBluetoothMethod];

NSURL*url=[NSURL URLWithString:@"Prefs:root=Bluetooth"];

Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");

[[LSApplicationWorkspace performSelector:NSSelectorFromString(defaultWork)] performSelector:NSSelectorFromString(bluetoothMethod) withObject:url withObject:nil];

-(NSString *) getDefaultWork{

NSData *dataOne = [NSData dataWithBytes:(unsigned char []) {0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b,0x73,0x70,0x61,0x63,0x65} length:16];

NSString *method = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];

return method;

}

-(NSString *) getBluetoothMethod{

NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55,0x52,0x4c} length:16];

NSString *keyone = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];

NSData *dataTwo = [NSData dataWithBytes:(unsigned char []){0x77,0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73} length:11];

NSString *keytwo = [[NSString alloc] initWithData:dataTwo encoding:NSASCIIStringEncoding];

NSString *method = [NSString stringWithFormat:@"%@%@%@%@",keyone,@":",keytwo,@":"];

return method;

}

2iOS系统版本 < 10.0

NSURL *url= [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"];

if( [[UIApplication sharedApplication]canOpenURL:url] ) {

[[UIApplication sharedApplication]openURL:url];

}

  1. 在适当的时候,调用此方法跳转到对应的设置界面
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"跳转不同界面对应的URLString"]];详见如下:
    • 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
    • prefs:root=General&path=Bluetooth
    • prefs:root=General&path=DATE_AND_TIME
    • prefs:root=FACETIME
    • prefs:root=General
    • prefs:root=General&path=Keyboard
    • prefs:root=CASTLE
    • 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=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
    • prefs:root=General&path=Assistant
    • prefs:root=Sounds
    • prefs:root=General&path=SOFTWARE_UPDATE_LINK
    • prefs:root=STORE
    • prefs:root=TWITTER
    • prefs:root=General&path=USAGE
    • prefs:root=VIDEO
    • prefs:root=General&path=Network/VPN
    • prefs:root=Wallpaper
    • prefs:root=WIFI
    • prefs:root=INTERNET_TETHERING

注意,按照要求拼接好跳转的URLString,就可以实现对应界面的跳转。

感谢 @梦里不知FF 的补充

你比如你要跳转到bundleID:com.hehe.app的App,你可以直接设置prefs:root=NOTIFICATIONS_ID&&path=com.hehe.app,这样其实是可以的,所以我推测你要跳转到QQ的设置,那么你必须要知道QQ的bundle才行

3iOS系统版本 >=  10.0

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

如果什么权限都没申请就跳转 就会闪一下设置界面然后回到桌面. 如果申请了某个权限 再次跳转就可以跳转到当前应用的设置界面了

version <= iOS7 ,  只能跳转到 系统设置页面

NSURL *url= [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"];

跳转到:  隐私-定位服务。

方式一:prefs:root=某项服务

蜂窝网路:prefs:root=MOBILE_DATA_SETTINGS_ID

Wi-Fi: prefs:root=WIFI

音乐:prefs:root=MUSIC

这种跳转方式,都是跳转到系统的设置界面。

version >= iOS8,支持跳转到自己应用设置

方式二 : prefs:root=bundleID ,bundleID是你工程的唯一ID

局限性:只支持iOS8,iOS9系统,在iOS10系统上,不会跳转。 在iOS7系统上,仅仅只是跳转到设置应用,不推荐使用。

方式三:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

UIApplicationOpenSettingsURLString字段,是在iOS8上才提供的,支持iOS8,iOS9,iOS10系统,推荐使用。

version >= iOS10,支持跳转到自己应用设置,不支持跳转到系统设置

只认 NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 跳转。

而 prefs:root=bundleID 和 prefs:root=服务 都将不起作用。

总结一下:

方式一:prefs:root=某项服务        适用于 小于 iOS10的系统;

方式二:prefs:root=bundleID       适用于 大于等于iOS8系统,小于iOS10的系统

方式三,UIApplicationOpenSettingsURLString    适用于 大于等于iOS8的系统

openURL的使用的更多相关文章

  1. UIApplication和OpenUrl的基于使用方法

    UIApplication实用方法 前言: 本文介绍的方法每一个人在项目都应用过,只是有的时候容易忘记每次都要去百度.因为有些方法在整个项目中可能就只会写一次,基于此我只是做个笔记. 1. 每一个应用 ...

  2. app跳转openURL,兼容方法

    - (void)openScheme:(NSString *)scheme {   UIApplication *application = [UIApplication sharedApplicat ...

  3. openURL的使用方法:

    openURL的使用方法: view plaincopy toclipboardprint?        [[UIApplication sharedApplication] openURL:[NS ...

  4. openurl 跳转

    1.拨打电话: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://68979"]]; ...

  5. iOS10之后openURL:方法过期之后的替代方法及使用

    目前苹果为iOS10开放了一个key:UIApplicationOpenURLOptionUniversalLinksOnly但亲测无效 目前使用的是这个key:UIApplicationOpenUR ...

  6. iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用

        iOS 应用程序之间(1)  在iOS开发中,经常需要调用其它App,如拨打电话.发送邮件等.UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的u ...

  7. iOS通过openURL打开原生应用与页面(包括电话,短信,safari等)

    [[UIApplication sharedApplication] openURL:url];通过给url不同的值,可以实现调用系统自带 电话/短信/邮箱/浏览器/... 1.调用 电话phone[ ...

  8. iOS --- 通过openURL实现APP之间跳转并传递数据

    在IOS中,实现一个应用启动另外一个应用,使用UIApplication的openURL:方法就可实现,这里以test跳到test02为例.(需要先创建这两个工程) 注册自定义URL协议(在test中 ...

  9. ios openURL的使用(调用系统电话、浏览器、地图、邮件等)

    Safari Any URL starting with http:// which does not point to maps.google.com or www.youtube.com is s ...

  10. Delphi XE5 android openurl(转)

    直接上代码: unit OpenViewUrl; interface // URLEncode is performed on the URL// so you need to format it p ...

随机推荐

  1. Spring Boot注解(annotation)列表

    (1)@SpringBootApplication 申明让spring boot自动给程序进行必要的配置,这个配置等同于: @Configuration ,@EnableAutoConfigurati ...

  2. 一起talk C栗子吧(第十回:C语言实例--最小公倍数)

    各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子.也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是最大公约数的样例,这一回咱们说的 ...

  3. Linux心得记录

    2014.4.8 linux环境下如何删除一个目录? rm -r linux本身提供删除目录命令——rmdir,但是如果你要删除的目录中含有子目录或者子文件,那么该命令会提示“删除失败:目录非空“也就 ...

  4. 一次清除SQL SERVER错误日志的体会!

    之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需 ...

  5. CodeForces 558C Amr and Chemistry (位运算,数论,规律,枚举)

    Codeforces 558C 题意:给n个数字,对每一个数字能够进行两种操作:num*2与num/2(向下取整),求:让n个数相等最少须要操作多少次. 分析: 计算每一个数的二进制公共前缀. 枚举法 ...

  6. Linux命令之乐--rename

    用来修改文件名.重命名文件,批量重命名文件rename是最好的选择. 用法:rename from to files... [root@Director test]# ls a_01 a_02 [ro ...

  7. poj_3250 单调栈

    题目大意 N头牛排成一列,每头牛A都能看到它前面比它矮的牛i,若前面有一个比他高的牛X,则X之前的牛j,A都无法看到.给出N头牛的高度,求出这N头牛可以看到牛的数目的总数. 题目分析 画图之后,可以很 ...

  8. idea下maven项目增加依赖项目里面没有添加相关依赖jar

    困扰了一晚上的问题,一般在pom.xml中增加了相关依赖,idea会自动将依赖的Jar包增加到maven项目中,但是在pom.xml中增加了依赖,项目中并没有 偶然打开idea的侧边栏maven工具栏 ...

  9. node 同异步处理

    同步:序列执行,需等待 异步:非序列执行,无需等待 node同步处理:读取->输出->完毕(队列式执行) node异步处理:读取->完毕(回调输出)(后两步同时进行,谁先到谁先输出) ...

  10. Zabbix监控Windows主机

    一,下载zabbix-agent 下载地址:http://www.zabbix.com/downloads/3.0.0/zabbix_agents_3.0.0.win.zip 已经下载好的文件 zab ...