在 iOS 开发中,经常会遇到有跳转至系统设置相关界面的需求;
例如:
提示用户开启蓝牙或者 WiFi 等功能提示操作;
提示用户打开推送或者位置相关权限.
在 iOS 6之后,第三方应用需要跳转系统设置界面则需要在 URL type 中添加一个 prefs 值.
跳转系统设置根目录中的项目使用方法如下:
_array = @[
@{@"系统设置":@"prefs:root=INTERNET_TETHERING"},
@{@"WIFI设置":@"prefs:root=WIFI"},
@{@"蓝牙设置":@"prefs:root=Bluetooth"},
@{@"系统通知":@"prefs:root=NOTIFICATIONS_ID"},
@{@"通用设置":@"prefs:root=General"},
@{@"显示设置":@"prefs:root=DISPLAY&BRIGHTNESS"},
@{@"壁纸设置":@"prefs:root=Wallpaper"},
@{@"声音设置":@"prefs:root=Sounds"},
@{@"隐私设置":@"prefs:root=privacy"},
@{@"APP Store":@"prefs:root=STORE"},
@{@"Notes":@"prefs:root=NOTES"},
@{@"Safari":@"prefs:root=Safari"},
@{@"Music":@"prefs:root=MUSIC"},
@{@"photo":@"prefs:root=Photos"}
];
NSURL * url = [NSURL URLWithString:[_array[index] allValues].firstObject];
[[UIApplication sharedApplication] openURL:url];
------------------------------------------------------------------------------------
如果需要跳转至第三方应用的设置界面中,则使用 prefs:root = boundleId 的方式.
注:其中 boundleId 是第三方应用的 boundleId.
如果需要继续向项目内层进行跳转,则可以通过添加 path 路径的方式,具体如下:
_array = @[
@{@"关于本机":@"prefs:root=General&path=About"},
@{@"软件升级":@"prefs:root=General&path=SOFTWARE_UPDATE_LINK"},
@{@"日期时间":@"prefs:root=General&path=DATE_AND_TIME"},
@{@"Accessibility":@"prefs:root=General&path=ACCESSIBILITY"},
@{@"键盘设置":@"prefs:root=General&path=Keyboard"},
@{@"VPN":@"prefs:root=General&path=VPN"},
@{@"壁纸设置":@"prefs:root=Wallpaper"},
@{@"声音设置":@"prefs:root=Sounds"},
@{@"隐私设置":@"prefs:root=privacy"},
@{@"APP Store":@"prefs:root=STORE"},
@{@"还原设置":@"prefs:root=General&path=Reset"},
@{@"应用通知":@"prefs:root=NOTIFICATIONS_ID&path=应用的boundleId"}
];
代码示例如下:
NSURL* url = [NSURLURLWithString:@"prefs:root=privacy"];//prefs:root=privacy 为上述数组中需要跳转项
[[UIApplication sharedApplication] openURL:url];