有时候我们写 app 的时候会有跳转到系统设置界面的需求, 比如当应用未联网的状态下, 可能需要提醒用户去连接网络, 如果只是单单一个提醒, 用户体验可能不是太好, 如果在提醒下边附加上一个跳转到Wi-Fi/蜂窝网络的界面, 是不是就好很多呢? 再比如, 你的 app 是智能家居方面的, 这时候需要 Wi-Fi 或者 Bluetooth 去连接智能家居设备, 那么在打开 app 的时候如果用户没连接 Wi-Fi 或 Bluetooth, 就需要提示用户去设置页面连接

还有, 有时候, 你的 app 需要获取用户的地理位置, 以此来获取周围的一些信息, 来让 app 体验更好, 或者说根据周围的地理情况来实现某种特性, 那么就需要 app 的定位服务是开启的, 但用户有时候没有开启定位或者把 app 的定位服务关掉了, 用户点击这个功能的时候, app 可能需要作出一个提醒并附带上跳转定位服务的按钮, 当然还有其它像通知、获取联系人、访问日历等等啦, 这个需求是很有必要的

实现步骤

1. info.plist

在项目中的 info.plist 中添加URL types选项, 并在其下添加一项URL Schemes字段, 值例如为 prefs, 如下

或者是在这里

2.1. OC代码中

//跳转关于本机
NSURL *url = [NSURL URLWithString:@"prefs:root=General&path=About"];
if ([[UIApplication sharedApplication] canOpenURL:url])
{
    [[UIApplication sharedApplication] openURL:url];
}

2.2. Swift

//跳转键盘页面
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General&path=Keyboard")!)

3. 网上找了一些可以跳转的列表

层级 Schemes
The topmost level General prefs:
About prefs:root=General&path=About
Accessibility prefs:root=General&path=ACCESSIBILITY
Account Settings prefs:root=ACCOUNT_SETTINGS
Airplane Mode prefs:root=AIRPLANE_MODE
Autolock prefs:root=General&path=AUTOLOCK
Batery prefs:root=BATTERY_USAGE
Brightness prefs:root=Brightness
Bluetooth iOS < 9 prefs:root=General&path=Bluetooth
Bluetooth iOS > 9 prefs:root=Bluetooth
Castle prefs:root=CASTLE
Cellular Usage prefs:root=General&path=USAGE/CELLULAR_USAGE
Configuration List prefs:root=General&path=ManagedConfigurationList
Date and Time prefs:root=General&path=DATE_AND_TIME
Do not disturb prefs:root=General&path=DO_NOT_DISTURB
Facetime prefs:root=FACETIME
General prefs:root=General
Internet Tethering prefs:root=INTERNET_TETHERING
iTunes prefs:root=MUSIC
iTunes Equalizer prefs:root=MUSIC&path=EQ
iTunes Volume prefs:root=MUSIC&path=VolumeLimit
Keyboard prefs:root=General&path=Keyboard
Deeper in Keyboard prefs:root=General&path=Keyboard/KEYBOARDS
Lang International prefs:root=General&path=INTERNATIONAL
Location Services prefs:root=LOCATION_SERVICES
Network prefs:root=General&path=Network
Nike iPod prefs:root=NIKE_PLUS_IPOD
Notes prefs:root=NOTES
Notifications ID prefs:root=NOTIFICATIONS_ID
Passbook prefs:root=PASSBOOK
Phone prefs:root=Phone
Photo Camera Roll prefs:root=Photos
Reset prefs:root=General&path=Reset
Ringtone prefs:root=Sounds&path=Ringtone
Siri prefs:root=SIRI
Safari prefs:root=Safari
Siri prefs:root=General&path=Assistant
Sounds prefs:root=Sounds
Software Update prefs:root=General&path=SOFTWARE_UPDATE_LINK
Storage & Backup prefs:root=CASTLE&path=STORAGE_AND_BACKUP
Store prefs:root=STORE
Twitter prefs:root=TWITTER
Usage prefs:root=General&path=USAGE
Video prefs:root=VIDEO
VPN prefs:root=General&path=Network/VPN
Wallpaper prefs:root=Wallpaper
WIFI prefs:root=WIFI