有時候,我們希望用戶跳轉到設置界面,進行一些設置。這個時候該如何跳轉呢?
1. iOS8下跳轉到設置界面方式:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
這種方式雖然能跳轉到設置界面,但是不能跳轉到具體的頁面
2. 如何跳到指定的設置界面,例如設置WiFi的時候,想直接跳到WiFi設置界面。
-
在
URL Types
添加 一個叫prefs
的URL Schemes
,如圖:
添加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.