有时候,我们希望用户跳转到设置界面,进行一些设置。这个时候该如何跳转呢?
1. iOS8下跳转到设置界面方式:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
这种方式虽然能跳转到设置界面,但是不能跳转到具体的页面
2. 如何跳到指定的设置界面,例如设置WiFi的时候,想直接跳到WiFi设置界面。
-
在
URL Types
添加 一个叫prefs
的URL Schemes
,如图:
- 在适当的时候,调用此方法跳转到对应的设置界面
[[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才行
疑惑:
- 在上架的时候,苹果是否会允许我们使用这种方式?
解答:本人亲测,可以这么干!但是如果[设置]本来是没有打开的,不会一次性跳转到对应的APP的设置界面,所以我选择连跳两次,确保直接跳到对应的APP.
网友评论
胡乱尝试时发现 : [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Bundle identifier"]]; 可以直接打开对应App的设置页诶
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:settings]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:settings]];