很多时候,有这样的场景:APP中需要获取使用相机的权限,而用户没有授权,我们需要提示用户去开启权限:”设置->隐私->相机”;这样,用户不得不退出APP后再去打开系统的设置,体验很不好,最好的是直接从APP内打开相机授权界面.
网上也有很多这方面的资料,但是我在使用的时候,多少会遇到点问题,并不能跳到指定的页面(后来才知道是字符串拼写的问题),花了点时间,测试了一些字段,现在整理如下:
测试手机:iPhone 5
测试机系统:iOS 9.3.1
Xcode版本:7.3
打开系统的设置页面主要是用来UIApplication
的openURL
方法:
NSURL *url = [NSURL URLWithString:string];
[[UIApplication sharedApplication]openURL:url];
下面主要是string
字段改怎么填写的问题:
打开系统设置主界面
NSString *string = @"prefs:root=INTERNET_TETHERING";
NSURL *url = [NSURL URLWithString:string];
[[UIApplication shareApplication]openURL:url];
这样就可以直接打开系统的设置界面;
打开设置的一级界面
打开一级界面可将上面的字符串修改为以下对应的字段:
@"prefs:root=WIFI",//打开WiFi
@"prefs:root=Bluetooth", //打开蓝牙设置页
@"prefs:root=NOTIFICATIONS_ID",//通知设置
@"prefs:root=General", //通用
@"prefs:root=DISPLAY&BRIGHTNESS",//显示与亮度
@"prefs:root=Wallpaper",//墙纸
@"prefs:root=Sounds",//声音
@"prefs:root=Privacy",//隐私
@"prefs:root=STORE",//存储
@"prefs:root=NOTES",//备忘录
@"prefs:root=SAFARI",//Safari
@"prefs:root=MUSIC",//音乐
@"prefs:root=Photos",//照片与相机
@"prefs:root=CASTLE"//iCloud
@"prefs:root=FACETIME",//FaceTime
@"prefs:root=LOCATION_SERVICES",//定位服务
@"prefs:root=Phone",//电话
通用下常用字段
@"prefs:root=General&path=About",//关于本机 @"prefs:root=General&path=SOFTWARE_UPDATE_LINK",//软件更新
@"prefs:root=General&path=DATE_AND_TIME",//日期和时间
@"prefs:root=General&path=ACCESSIBILITY",//辅助功能
@"prefs:root=General&path=Keyboard",//键盘
@"prefs:root=General&path=VPN",//VPN设置
@"prefs:root=General&path=AUTOLOCK",//自动锁屏
@"prefs:root=General&path=INTERNATIONAL",//语言与地区
@"prefs:root=General&path=ManagedConfigurationList",//描述文件
隐私下常用字段
@"prefs:root=Privacy&path=CAMERA",//设置相机使用权限
@"prefs:root=Privacy&path=PHOTOS"//设置照片使用权限
以上字段,亲测全部可用….
具体效果参见Demo