iOS 跳转设置界面

作者: Ljson | 来源:发表于2015-08-03 21:35 被阅读6997次

    有时候,我们希望用户跳转到设置界面,进行一些设置。这个时候该如何跳转呢?

    1. iOS8下跳转到设置界面方式:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    

    这种方式虽然能跳转到设置界面,但是不能跳转到具体的页面

    2. 如何跳到指定的设置界面,例如设置WiFi的时候,想直接跳到WiFi设置界面。

    1. URL Types 添加 一个叫prefsURL Schemes,如图:
    添加URL Schemes
    1. 在适当的时候,调用此方法跳转到对应的设置界面
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"跳转不同界面对应的URLString"]];详见如下:
    • 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

    注意,按照要求拼接好跳转的URLString,就可以实现对应界面的跳转。

    感谢 @梦里不知FF 的补充

    你比如你要跳转到bundleID:com.hehe.app的App,你可以直接设置prefs:root=NOTIFICATIONS_ID&&path=com.hehe.app,这样其实是可以的,所以我推测你要跳转到QQ的设置,那么你必须要知道QQ的bundle才行

    疑惑:

    1. 在上架的时候,苹果是否会允许我们使用这种方式?
      解答:本人亲测,可以这么干!但是如果[设置]本来是没有打开的,不会一次性跳转到对应的APP的设置界面,所以我选择连跳两次,确保直接跳到对应的APP.

    相关文章

      网友评论

      • Lovingers:已经被拒了两次,楼主居然过了?
      • minjing_lin:楼主 iOS10 尝试了吗
      • 馒头灿:通讯录是那个prefs:root啊?
      • 超C:非常有用
        胡乱尝试时发现 : [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Bundle identifier"]]; 可以直接打开对应App的设置页诶
      • 20494ff572a6:你好,请问有调转到蜂窝数据设置界面的相关URL吗
      • Mr__C:你好,请问怎么实现跳转两次呢?
        Ljson:@Mr__C NSString *settings = @"prefs:root=NOTIFICATIONS_ID&path=cn.com.xxx";
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:settings]];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:settings]];
        Mr__C:@Ljson 可以贴一下源码么? :grin:
        Ljson:@Mr__C 连续两次调,代码虽然有点坑,但是可以达到效果.
      • 跟班2号::kissing_heart::sob::sob::sob::sob:😮🗻:stuck_out_tongue::stuck_out_tongue:🗻:stuck_out_tongue:💒💒:stuck_out_tongue::yum::stuck_out_tongue::stuck_out_tongue:
      • Silicn:你比如你要跳转到bundleID:com.hehe.app的App,你可以直接设置prefs:root=NOTIFICATIONS_ID&&path=com.hehe.app,这样其实是可以的,所以我推测你要跳转到QQ的设置,那么你必须要知道QQ的bundle才行
        Avalooon:请问该怎么进入com.hehe.app的定位界面呢 或者设置界面
        action爱生活:确定能上架了吗?
        伙伴崩溃:@梦里不知FF 谢谢你的补充,太有用了。
      • Ljson:直接把链接地址的协议头设置为APP的URLSchemes://.例如配置APP的URLSchemes为 myApp,那么在浏览器中点击的链接地址协议头为:myApp://
      • seongbrave:大神您解决了吗?我现在想在浏览器中点击直接打开我们自己的app可以嘛?
        L柠_檬:@seongbrave 这个可以通过scheme可以实现

      本文标题:iOS 跳转设置界面

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