[Swift]アプリ内で設定アプリを開く方法いろいろ
アプリから設定アプリを開く方法をまとめました。
アプリから設定アプリを直接開く方法はiOS5.0.1まで可能だったそうですが、iOS5.1から禁止になったそうです。
しかしiOS8から復活。直接アプリから設定アプリを開けるようになりました。
通知やモバイルデータ通信など、設定アプリで設定してもらう機会は意外と多いです。そんなとき直接アプリから開けるようになれば、ユーザビリティが向上するでしょう。
それでは見ていきましょう。
実行環境
- Xcode7.2
- OSX Yosemite 10.10.5
- Swift 2.1.1
UIApplicationOpenSettingsURLString を使う
UIApplicationクラスで定義されているUIApplicationOpenSettingsURLStringという定数を使うとアプリから設定アプリ呼び出せます。
遷移する設定アプリのページは、そのアプリにアプリ固有のプリファレンスがある場合はそのページヘ。プリファレンスがない場合は設定アプリトップに遷移します。
プリファレンスは
呼び出した設定アプリのページはトップになります。
以下のコードを実行すれば、設定アプリを開けます。
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
app-settings:スキームを使う
**app-settings:**というスキームを使っても設定アプリを呼び出せます。よくよくみたら、UIApplicationOpenSettingsURLString
の実態のようです。
呼び出した設定アプリのページはUIApplicationOpenSettingsURLStringと同じです。
プリファレンスがあるアプリはそのアプリのプリファレンスへ。
ないアプリは設定アプリトップになります。
UIApplication.sharedApplication().openURL(NSURL(string: "app-settings:")!)
prefsスキームを使う。
prefsスキームを使うと、設定アプリの様々なページに直接リンクすることができ、非常に便利です。
ただし、Targetに事前設定が必要です。
また、Appleから公式にアナウンスされているわけではないので、使用する場合は自己責任でおねがいします。
m(_ _)m
prefsを使うための事前設定
Target -> Info -> URLTypes ->URL Schemes に prefs を設定します。
例えば、設定アプリ > 一般 ページへ遷移させたいなら
"prefs:root=General"
を指定します。
UIApplication.sharedApplication().openURL(NSURL(string: "prefs:root=General")!)
他にもprefsで指定できるものはたくさんあります。
- 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
ぜひ使ってみてください