美文网首页IOS带我飞3iOS学习开发
【iOS开发】跳转到『设置App』的任意条目

【iOS开发】跳转到『设置App』的任意条目

作者: KyXu | 来源:发表于2015-11-24 21:51 被阅读6480次

有时候,我们为了让用户方便地设置一些内容,希望可以让用户点击一个按钮,就可以跳转到 设置->通用,或 设置->�Safari,等『设置App』中的详细条目,这样,下面这条常见的语句就不足以满足需求了:

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

(这条语句可以跳转到 设置App)
但是如果我们需要跳转到 设置->Safari 这个地方,就要写下面这样的语句:
#if arch(i386) || arch(x86_64)
// Simulator
let url = NSURL(string: "prefs:root=Safari")!
#else
// Device
let url = NSURL(string: "prefs:root=SAFARI")!
#endif

        if UIApplication.sharedApplication().canOpenURL(url) {
            UIApplication.sharedApplication().openURL(url)
        }

这种形式直接被写出来的话,在 iOS 5.1 及更高版本中,不会起作用,所以需要做的额外一个步骤是:

URL Schemes: prefs

在 YourAppTarget->Info->URL Types 这个地方,如上图,写上 prefs 字段;这样在 iOS 8 及 iOS 9 中都亲测有效。
下面给出一个较为完整的列表,可以让你随意跳转到 设置App 里的任意一个地方 :)

【List of currently known URLs in the Settings app】
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=Brightness
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

引用内容来源:
http://stackoverflow.com/questions/9092142/ios-uialertview-button-to-go-to-setting-app
http://stackoverflow.com/questions/8246070/ios-launching-settings-restrictions-url-scheme/33896318#33896318

提醒:
这是私有 API,在 AppStore 上架 App 中,请小心谨慎使用。

相关文章

网友评论

  • 小兵快跑:请问一下楼主,这完整的URL列表是怎么查到的,如果是其他APP的URL该怎么查了
    小兵快跑:@KyXu 谢谢了
    KyXu:@小兵快跑 这是我在 StackOverFlow 上面看到的,需要提示你一下,这些东西并不能保证一直有效,因为苹果并没有公开地说这些方法是开发者可以使用的,所以说不定哪一天就用不了,或者效果改变了。
    第三方App的URL倒是很容易搞到:http://www.jianshu.com/p/28f517775214
  • 66c12491893c:mark,很有用
  • IamOnelong:很好
  • ff10ce89d06f:很好,收藏
  • FengxinLi:请问一下楼主这个会不会被苹果拒绝?
    KyXu:@Fengxinliju 最新消息,这种方法会被苹果认定为私有API,大量明显使用的话会被拒绝,在个别地方使用不被发现才有可能通过。目前大量使用这种方法的Launcher App,已经经历过了下架
    FengxinLi:@KyXu 好的 谢谢了
    KyXu:@Fengxinliju 不会啊 目前没有发现其他可以做到这一点的方法 而可以做到这一点的App可不在少数
  • 三十一_iOS:高啊!

本文标题:【iOS开发】跳转到『设置App』的任意条目

本文链接:https://www.haomeiwen.com/subject/ftgrhttx.html