简体   繁体   English

如何以编程方式打开设置应用程序?

[英]How to open settings app programmatically?

I'm using swift with ios 8.3.我在 ios 8.3 上使用 swift。 I want to open settings app from my application.我想从我的应用程序中打开设置应用程序。 I know that using the code我知道使用代码

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

will open my app settings.将打开我的应用程序设置。 But I don't want to open my app settings.但我不想打开我的应用程序设置。 I just want to open the settings app and stay in the main page.我只想打开设置应用程序并停留在主页上。 If possible, navigate to "Cellular".如果可能,导航到“蜂窝网络”。 Is there any way to acheive this?有没有办法实现这一目标?

Try this.尝试这个。

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

Xcode 11.5 - iOS > 10 Xcode 11.5 - iOS > 10

Update on 11-Oct-2016: 2016 年 10 月 11 日更新:

It won't work in iOS10 anymore.它不再适用于 iOS10。 So far I haven't found any workaround.到目前为止,我还没有找到任何解决方法。 If you guys have any solution please let me know.如果你们有任何解决方案,请告诉我。 thanks.谢谢。

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

if the iOS version <= iOS9, you need set URL types:如果 iOS 版本 <= iOS9,则需要设置 URL 类型: 在此处输入图片说明

You can do in this way:你可以这样做:

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

I have a demo on github: http://github.com/zhihuitang/SettingDemo.git我在github上有一个demo: http : //github.com/zhihuitang/SettingDemo.git

And you can find all available URLs as follows: http://iphonedevwiki.net/index.php/Preferences.app Preferences app registers a private URL scheme, prefs:, the list below details opening specific views 1 [2]您可以找到所有可用的 URL,如下所示: http://iphonedevwiki.net/index.php/Preferences.app Preferences app 注册一个私有 URL 方案,prefs:,下面的列表详细说明打开特定视图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

hope this helpful to you.希望这对你有帮助。

YES, They made changes in iOS 10, Please change "prefs:" to "App-Prefs:"是的,他们在 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)")
    })
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM