18
19

More than 5 years have passed since last update.

swiftでSettingAppを開く方法

Last updated at Posted at 2015-11-12

実行環境

  • 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スキームで設定が開くようになるそうです。

スクリーンショット 2015-12-15 14.44.54.png

これで設定アプリがprefsで開けるようになります。

参考

18
19
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
19