実行環境
- Xcode7.1
SettingAppを開く方法
iOS9から使えるようになったextension,ContentBlockerを取り入れようとしたら、アプリからiPhone,iPadの設定アプリを開きたくなりました。
いろいろ調べると、UIApplicationクラスで定義されているUIApplicationOpenSettingsURLString
という定数を使うとアプリから設定アプリを呼び出せるらしい。
UIButtonがあるとして、タップして設定アプリを開かせたいなら以下のコードを書けばいい。
iOS8以上からつかえるとのこと。
@IBAction func gotoSettingApp(sender: AnyObject) {
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
}
app-settings:というスキームでURLを作っても設定アプリを開けました。
@IBAction func gotoSettingApp(sender: AnyObject) {
let url = NSURL(string: "app-settings:")
UIApplication.sharedApplication().openURL(url!)
}
StackOverFlowで言われていたけど動かなったスキーム
iOS5.0までは使えて、iOS5.1から使えなくなったスキームがiOS9から復活したようなことをStackOverFlowの以下の記事でかかれていましたが、私の環境では動かなかったです。
残念。これができれば、ダイレクトに各設定ページにいけるのでとってもありがたいのですが。。
@IBAction func gotoSettingApp(sender: AnyObject) {
let url = NSURL(string: "prefs:root=General")
UIApplication.sharedApplication().openURL(url!)//うごかない。。
}
「"prefs:root=General"
でうごくよ!」っていう方がいれば教えていただけると助かりますm(_ _)m
2015/12/15追記
prefsで設定アプリを開く方法がわかりました。
URL Schemeを設定しなければいけないようです。
Target -> Info -> URLTypes ->URL Schemes に prefs を設定すればprefsスキームで設定が開くようになるそうです。
これで設定アプリがprefsで開けるようになります。