Today Extension (Widget)から設定アプリを起動する

ゆう@あんのうんです。 今日は欲張って2つ目の投稿です。

Qiitaでも投稿した内容(Today Extension (Widget)から設定アプリを起動する)をそのまま転載します。


概要

iOS8からは、iOSアプリ本体から設定アプリを再び開けるようになりました。 詳しくは、iOS8で復活した設定画面へのURLスキームこちらの記事で詳細に記載されていましたので、そちらを参照いただければ

ただアプリ本体からは、そのアプリの設定ファイルしか開けません。(開く方法があればご教授ください)

ただ、iOS8から追加されました、TodayExtention(Widget)を利用すれば、Widget側から設定アプリを開くことが出来ます。

やり方

widget側で、設定アプリのURLスキームをコールするだけです。

NSURL *url = [NSURL URLWithString:@"pref:root"];
[self.extensionContext openURL:url completionHandler:nil];

色々やってみたのですが、昔あったURLスキームはある程度開くことが出来ました。 (例えば、&pathでつないで、設定アプリの下層の設定も開けたり)

最後に

なんで開けるようになったのかは調べて無いので不明です。 (そもそもセキュリティの問題等があり、アプリ側から開けなくしたような背景を聞いた気が…となるといずれできなくなるかも。)