web-dev-qa-db-ja.com

プログラムで設定アプリを開く方法は?

私はSwift with ios 8.3を使用しています。アプリケーションから設定アプリを開きたいです。コードを使用していることを知っています

UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)

アプリの設定が開きます。しかし、アプリの設定を開きたくありません。設定アプリを開いてメインページにとどまりたいだけです。可能であれば、「セルラー」に移動します。これを達成する方法はありますか?

15
user4615157

これを試して。

if let appSettings = URL(string: UIApplicationOpenSettingsURLString) {
    UIApplication.shared.open(appSettings, options: [:], completionHandler: nil)
}

Xcode 8.2.1-iOS 10

21
Derek Soike

2016年10月11日の更新:

IOS10では動作しなくなります。これまでのところ、回避策は見つかりませんでした。あなたたちが何か解決策を持っているなら、私に知らせてください。ありがとう。

======================================

iOSバージョン<= iOS9の場合、URLタイプを設定する必要があります: enter image description here

あなたはこのようにすることができます:

    let url:NSURL! = NSURL(string : "prefs:root=")
    UIApplication.sharedApplication().openURL(url)

Githubにデモがあります: http://github.com/zhihuitang/SettingDemo.git

そして、利用可能なすべてのURLを次のように見つけることができます。 http://iphonedevwiki.net/index.php/Preferences.app 環境設定アプリはプライベートURLスキームを登録します。 1 [2]

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=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

これがお役に立てば幸いです。

16
DàChún

はい、iOS 10で変更を加えました。「prefs:」を「App-Prefs:」に変更してください。

guard let profileUrl = URL(string:"App-Prefs:root=General&path=ManagedConfigurationList") else {
    return
}

if UIApplication.shared.canOpenURL(profileUrl) {
    UIApplication.shared.open(profileUrl, completionHandler: { (success) in
        print(" Profile Settings opened: \(success)")
    })
}

7
Boosa Ramesh