【iOS10】設定画面に遷移するURLスキームの設定について


iOS10でアプリから設定画面に遷移するURLスキームの設定が少し変わったようなのでまとめました。

設定画面への遷移方法(iOS9まで)

特定のアプリから、設定->Twitterへ画面遷移する際には、
呼び出したい設定画面(今回はTwitter)のURLスキームを下記のように設定します。

if let url = URL(string: "prefs:root=TWITTER") {
      UIApplication.shared.openURL(url)
}

iOS9までであれば上記の実装で「設定->Twitter」へ画面遷移することができるのですが、iOS10になり遷移ができなくなっていました。

対応

URLを設定している”prefs:root=TWITTER”の先頭に「app-」または「App-」を付けることで指定した設定画面へ遷移が可能になります。

prefsの前に「app-」を追加
if let url = URL(string:"app-prefs:root=TWITTER") {
      if #available(iOS 10.0, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
      } else {
            UIApplication.shared.openURL(url)
      }
}

URLスキームサンプル

設定 スキーム
Wi-Fi App-Prefs:root=WIFI
Bluetooth App-Prefs:root=Bluetooth
モバイルデータ通信 App-Prefs:root=MOBILE_DATA_SETTINGS_ID
インターネット通信(テザリング) App-Prefs:root=INTERNET_TETHERING
キャリア App-Prefs:root=Carrier
通知 App-Prefs:root=NOTIFICATIONS_ID
一般 App-Prefs:root=General
一般 > 情報 App-Prefs:root=General&path=About
一般 > キーボード App-Prefs:root=General&path=Keyboard
壁紙 App-Prefs:root=Wallpaper
Siri App-Prefs:root=SIRI
プライバシー App-Prefs:root=Privacy
Safari App-Prefs:root=SAFARI
ミュージック App-Prefs:root=MUSIC
ミュージック > イコライザ App-Prefs:root=MUSIC&path=com.apple.Music:EQ
写真とカメラ App-Prefs:root=Photos