• 示例:项目里面有扫码功能,当用户第一次扫码—选择不允许访问相机,再次使用扫码APP就需要引导用户到系统的相机页面开启相机权限。类似的功能还有定位、录音、蓝牙、相册等,这些功能都需要给...iOS11之后不允许跳...

    示例:项目里面有扫码功能,当用户第一次扫码—选择不允许访问相机,再次使用扫码APP就需要引导用户到系统的相机页面开启相机权限。类似的功能还有定位、录音、蓝牙、相册等,这些功能都需要给用户提示/引导。

    根据上述情况,市场上的App有两种做法:

    • 不做跳转,给用户提示;
    • 给用户提示,并做跳转,引导用户到设置界面; 

     

    总述:

    iOS10之前可以进入系统设置的子页面
    iOS11之后不允许跳转到设置的子页面,只允许跳转到设置界面(首页)

     
    // 跳转到设置 - 相机 / 该应用的设置界面
    NSURL *url1 = [NSURL URLWithString:@"App-Prefs:root=Privacy&path=CAMERA"];
    // iOS10也可以使用url2访问,不过使用url1更好一些,可具体根据业务需求自行选择
    NSURL *url2 = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
    if (@available(iOS 11.0, *)) {
        if ([[UIApplication sharedApplication] canOpenURL:url2]){
            [[UIApplication sharedApplication] openURL:url2 options:@{} completionHandler:nil];
        }
    } else {
        if ([[UIApplication sharedApplication] canOpenURL:url1]){
            if (@available(iOS 10.0, *)) {
                [[UIApplication sharedApplication] openURL:url1 options:@{} completionHandler:nil];
            } else {
                [[UIApplication sharedApplication] openURL:url1];
            }
        }
    }
    
    

    附:iOS 10之前常用的跳转指令(现已经被苹果列为非公开API,有审核风险) 

    • iOS 10 以前:
    蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID
    Wi-Fi:prefs:root=WIFI
    定位服务:prefs:root=LOCATION_SERVICES
    个人热点:prefs:root=INTERNET_TETHERING
    关于本机:prefs:root=General&path=About
    辅助功能:prefs:root=General&path=ACCESSIBILITY
    飞行模式:prefs:root=AIRPLANE_MODE
    锁定:prefs:root=General&path=AUTOLOCK
    亮度:prefs:root=Brightness
    蓝牙:prefs:root=Bluetooth
    时间设置:prefs:root=General&path=DATE_AND_TIME
    FaceTime:prefs:root=FACETIME
    设置:prefs:root=General
    设置 prefs:root=SETTING
    定位服务 prefs:root=LOCATION_SERVICES
    键盘设置:prefs:root=General&path=Keyboard
    iCloud:prefs:root=CASTLE
    iCloud备份:prefs:root=CASTLE&path=STORAGE_AND_BACKUP
    语言:prefs:root=General&path=INTERNATIONAL
    定位:prefs:root=LOCATION_SERVICES
    音乐:prefs:root=MUSIC
    
    • iOS 10 开始
    Wi-Fi: App-Prefs:root=WIFI
    蓝牙: 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=General&path=ACCESSIBILITY
    通用-语言与地区: App-Prefs:root=General&path=INTERNATIONAL
    通用-还原: App-Prefs:root=Reset
    墙纸: App-Prefs:root=Wallpaper
    Siri: App-Prefs:root=SIRI
    隐私: App-Prefs:root=Privacy
    定位: App-Prefs:root=LOCATION_SERVICES
    Safari: App-Prefs:root=SAFARI
    音乐: App-Prefs:root=MUSIC
    音乐-均衡器: App-Prefs:root=MUSIC&path=com.apple.Music:EQ
    照片与相机: App-Prefs:root=Photos
    FaceTime: App-Prefs:root=FACETIME
    

    iOS 10 绕过审核进行跳转到蓝牙开关的方法

    //亲测iOS 10.3.3 有效
    - (void)turnToBluetooth {
         if (iOS_Version <= 10) {
             [self setBlueTooth];
        } else {//@"App-Prefs:root=General&path=Bluetooth"
            NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
            [[UIApplication sharedApplication] openURL:url];
        }
    }
    
    
    -(NSString *) getDefaultWork{
        NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b,0x73,0x70,0x61,0x63,0x65} length:16];
        NSString *method = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];
        return method;
    }
    
    -(NSString *) getBluetoothMethod{
        NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55,0x52,0x4c} length:16];
        NSString *keyone = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];
        NSData *dataTwo = [NSData dataWithBytes:(unsigned char []){0x77,0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73} length:11];
        NSString *keytwo = [[NSString alloc] initWithData:dataTwo encoding:NSASCIIStringEncoding];
        NSString *method = [NSString stringWithFormat:@"%@%@%@%@",keyone,@":",keytwo,@":"];
        return method;
    }
    
    -(void)setBlueTooth {
        NSString * defaultWork = [self getDefaultWork];
        NSString * bluetoothMethod = [self getBluetoothMethod];
        NSURL*url=[NSURL URLWithString:@"Prefs:root=Bluetooth"];
        Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
        [[LSApplicationWorkspace performSelector:NSSelectorFromString(defaultWork)] performSelector:NSSelectorFromString(bluetoothMethod) withObject:url withObject:nil];
    
    }

    参考原文链接:https://www.jianshu.com/p/be09f5709c2c

    参考原文链接:https://www.jianshu.com/p/5fd0ac245e85
     
     

    展开全文
  • iOS 跳转设置Setting页

    1.跳转到系统设置

    // 英文模式下,到setting页,然后使用navigation path

    //  setting->General&path->Reset

    //  setting->WIFI


    形式:跳转到“一般”中得“时间与日期”

    "prefs:root=General&path=DATE_AND_TIME"

    通过观察,我们发现,访问“一般”中得某项,就需要使用“General&path=xxx”

    同理,

    如果跳转到设置中的大类,比如WIFI

    "prefs:root=WIFI"

    注意:

    OS版本不同,路径可能会发生变化


    2.跳转到设置页面中自己的应用下

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

    一般情况下,这个主要是申请了访问系统资源的权限APP才会使用,比如,麦克风、推送、Location Service等!

    注意:

    这个UIApplicationOpenSettingsURLString常量是iOS8之后才可用的

    展开全文
  • ios跳转wifi设置页面

    2017-04-27 18:31:21
    2、跳转自己APP的设置页面: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 3、跳转WiFi设置页面(有区别,注意看): ①iOS 10之前: [[UIAppl

    1、首先,需要添加一个URL Schemes



    2、跳转自己APP的设置页面:

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


    3、跳转WiFi设置页面(有区别,注意看):

    ①iOS 10之前:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

    ②iOS 10:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]];

    ③具体代码:

    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"prefs:root=WIFI"]]) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
        } else {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]];
        }


    4、各个页面的地址(iOS 10之前:prefs       iOS 10:App-Prefs):

    About — prefs:root=General&path=About  
    Accessibility — prefs:root=General&path=ACCESSIBILITY  
    Airplane Mode On — prefs:root=AIRPLANE_MODE  
    Auto-Lock — prefs:root=General&path=AUTOLOCK  
    Brightness — prefs:root=Brightness  
    Bluetooth — prefs:root=General&path=Bluetooth  
    Date & Time — prefs:root=General&path=DATE_AND_TIME  
    FaceTime — prefs:root=FACETIME  
    General — prefs:root=General  
    Keyboard — prefs:root=General&path=Keyboard  
    iCloud — prefs:root=CASTLE  
    iCloud Storage & Backup — prefs:root=CASTLE&path=STORAGE_AND_BACKUP  
    International — prefs:root=General&path=INTERNATIONAL  
    Location Services — prefs:root=LOCATION_SERVICES  
    Music — prefs:root=MUSIC  
    Music Equalizer — prefs:root=MUSIC&path=EQ  
    Music Volume Limit — prefs:root=MUSIC&path=VolumeLimit  
    Network — prefs:root=General&path=Network  
    Nike + iPod — prefs:root=NIKE_PLUS_IPOD  
    Notes — prefs:root=NOTES  
    Notification — prefs:root=NOTIFICATIONS_ID  
    Phone — prefs:root=Phone  
    Photos — prefs:root=Photos  
    Profile — prefs:root=General&path=ManagedConfigurationList  
    Reset — prefs:root=General&path=Reset  
    Safari — prefs:root=Safari  
    Siri — prefs:root=General&path=Assistant  
    Sounds — prefs:root=Sounds  
    Software Update — prefs:root=General&path=SOFTWARE_UPDATE_LINK  
    Store — prefs:root=STORE  
    Twitter — prefs:root=TWITTER  
    Usage — prefs:root=General&path=USAGE  
    VPN — prefs:root=General&path=Network/VPN  
    Wallpaper — prefs:root=Wallpaper  
    Wi-Fi — prefs:root=WIFI  
    Setting —prefs:root=INTERNET_TETHERING 




    展开全文
  • 最近做社区项目,有一模块是用户连接WiFi,但是由于苹果限制只能让用户跳转设置里面的WiFi列表界面连接。跳转到自己的项目中在需要调转的按钮动作中添加如下的代码,就会跳转设置中自己的app的设置界面,这里会...

    最近做社区项目,有一模块是用户连接WiFi,但是由于苹果限制只能让用户跳转到设置里面的WiFi列表界面连接。

    跳转到自己的项目中


    在需要调转的按钮动作中添加如下的代码,就会跳转到设置中自己的app的设置界面,这里会有通知和位置权限的设置

    
    NSURL * url = [NSURLURLWithString:UIApplicationOpenSettingsURLString];
    
    if([[UIApplicationsharedApplication] canOpenURL:url]) {
    
    NSURL*url =[NSURLURLWithString:UIApplicationOpenSettingsURLString];           [[UIApplicationsharedApplication] openURL:url];  
    
    }

    测试注意:新项目测试,需要请求一下位置权限或者通知权限,才可以跳进自己的app设置里面,如果没有任何权限请求,就只能跳到系统的设置界面


    跳转到系统设置的其他界面


    在点击跳转的按钮动作中添加如下代码

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
    

    在项目中的info中添加 URL types

    添加 URL Schemes 为 prefs的url


    这里写图片描述

    这样点击就可以跳转到wifi设置界面


    跳转到其他的界面的字段

     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    //打开Brightness(亮度)设置界面
      prefs:root=Bluetooth    //打开蓝牙设置
      prefs:root=General&path=DATE_AND_TIME    //日期与时间设置
      prefs:root=FACETIME    //打开FaceTime设置
      prefs:root=General    //打开通用设置
      prefs:root=General&path=Keyboard    //打开键盘设置
      prefs:root=CASTLE    //打开iClound设置
      prefs:root=CASTLE&path=STORAGE_AND_BACKUP    //打开iCloud下的储存空间
      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    //打开设置下的safari设置
      prefs:root=General&path=Assistant    //打开siri不成功
      prefs:root=Sounds    //打开设置下的声音设置
      prefs:root=General&path=SOFTWARE_UPDATE_LINK    //打开通用下的软件更新
      prefs:root=STORE    //打开通用下的iTounes Store和App Store设置
      prefs:root=TWITTER    //打开设置下的twitter设置
      prefs:root=FACEBOOK    //打开设置下的Facebook设置
      prefs:root=General&path=USAGE    //打开通用下的用量
      prefs:root=VIDEO    
      prefs:root=General&path=Network/VPN        //打开通用下的vpn设置
      prefs:root=Wallpaper    //打开设置下的墙纸设置
      prefs:root=WIFI    //打开wifi设置
      prefs:root=INTERNET_TETHERING

    参考自:简书作者:Biharry

    更多: iOS在App中打开设置中的指定模块

    展开全文
  • iOS10 跳转系统设置

    2018-01-23 09:10:19
    iOS10更新后,系统设置跳转被禁用,只能跳转App设置? NO, NO, NO, 看这里,又可以换个姿势愉快的跳转啦。其实方法很简单,例如原有跳转Wi-Fi设置是”prefs:root=WIFI”,新的写法是”App-Prefs:root=WIFI”。怎么...

    在iOS10更新后,系统设置跳转被禁用,只能跳转App设置? NO, NO, NO, 看这里,又可以换个姿势愉快的跳转啦。

    其实方法很简单,例如原有跳转Wi-Fi设置是”prefs:root=WIFI”,新的写法是”App-Prefs:root=WIFI”。怎么样,是不是很简单!!!

    Objective-c

    #define iOS10 ([[UIDevice currentDevice].systemVersion doubleValue] >= 10.0)
    NSString * urlString = @"App-Prefs:root=WIFI";
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {
        if (iOS10) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString] options:@{} completionHandler:nil];
        } else {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
        }
    }

    Swift

    if let url = URL(string:"App-Prefs:root=WIFI") {
          if #available(iOS 10.0, *) {
                UIApplication.shared.open(url, options: [:], completionHandler: nil)
          } else {
                UIApplication.shared.openURL(url)
          }
    }

    当前iOS10支持的所有跳转,亲测可用(测试系统:10.2.1)

    跳转 写法
    无线局域网 App-Prefs:root=WIFI
    蓝牙 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=General&path=ACCESSIBILITYFI
    通用-语言与地区 App-Prefs:root=General&path=INTERNATIONAL
    通用-还原 App-Prefs:root=Reset
    墙纸 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
    FaceTime App-Prefs:root=FACETIME
    展开全文
  • iOS跳转到系统设置

    2015-06-24 18:14:25
    大家都知道,在iOS5.0时时可以跳转到系统的设置页的。但是在5.1之后就不可以了。 刚才研究了下这个问题,发现只有iOS8可以跳转到系统设置里自己App的页面。 目前没有找到iOS7怎么跳转过去。如果你知道请一定要留言...
  • iOS应用内跳转到系统设置 设置跳转有三种方式,每一种的使用场景都不同。 并且你跳转到系统中自己应用下面设置的时候,你的应用要提前至少申请了某一个权限,如(通讯录,通知,定位等)。否则,会引起崩溃。 ...
  • iOS自我们熟悉以来,就一直与Android有着不一样的体验, 系统更加流畅,使用更加舒适, ...就比如iOS10以前,我们开发的应用想要跳转到系统设置,跳转到蓝牙,跳转到WIFI… iOS开发工程师们都很熟悉,系统给
  • 直接点击跳转到系统设置界面, 设置通知定位等等在操作之前, 你需要info中设置 URLTypes, 如下图所示 直接通过 root=* 什么来配置 NSArray *dataArray = @[ @{@"系统设置":@"prefs:root=INTERNET_TET
  • iOS App跳转权限设置

    2019-04-12 18:26:31
    开启照相机 #import <AVFoundation/AVFoundation.h> - (void)getCameraJurisdiction { NSString *mediaType = AVMediaTypeVideo;// Or AVMediaTypeAudio ... AVAuthorizationStatus authStatus = [AVCaptur.....
  • iOS 11跳转系统设置

    2018-03-29 10:11:37
    就找过很多资料去实现跳转,最后好像是在stackoverflow上看到一个最取巧的方式,以Wi-Fi列表为例,官方给的URL格式如下:app-prefs:root=WIFI,只需要改为:app-Prefs:root=WIFI就可以在iOS 10以上跳转...
  • 5.1之后的跳转设置都变了,最新的有效方法  NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];   if ([[UIApplication sharedApplication] canOpenURL:url]) {   //如果点击...
  • 之前做蓝牙小应用的时候有个需求是:进入app发现没有打开蓝牙,需要切换到系统设置页面的蓝牙中。开始以为苹果不支持直接从应用跳转,需要用到私有API什么的,后来发现,这个功能其实非常好实现! 跳转设置蓝牙页面...
  • 转自:...   1、获取用户通知中心对程序消息通知的设置,是否开启消息通知 if ([[UIDevice currentDevice].systemVersion floatValue]&gt;=8.0f) { UIUserNotif...
  • 若不想写繁琐的网络状况判断代码,并且应用程序能自动在无网络时弹出可跳转到系统设置页面的对话框,那么可以考虑这么做。 在项目中相应的**info.plist文件中增加一个关键字: SBUsesNetwork 应用程序就会...
  • 最近一段时间在做推送,关于从自己app跳转到系统设置页面的方法可谓众说纷纭,以下针对不同的ios版本以及跳转到系统设置界面的不同层次做了总结(仅以推送为例):(注:本文ios9系统以ios9.3.1为依据;ios8系统以...
  • iOS App跳转到系统设置页面一 设置内设的URL Scheme 方法:TARGETS——>Info——>URL Types ——>URL Schemes 中加“prefs” 代码if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0f) { '''这是...
  • 本人已经测试,在5c/6 iOS8.3系统 、6 iOS9.1系统和 5s iOS7.1系统中可以正常跳转1.跳转到自己的项目中在需要调转的按钮动作中添加如下的代码,就会跳转设置中自己的app的设置界面,这里会有通知和位置权限的设置...
  • iOS10跳转系统设置、WIFI、蓝牙…iOS自我们熟悉以来,就一直与Android有着不一样的体验, 系统更加流畅,使用更加舒适, 同时较高与Android的价格也导致了它的特殊性, iOS系统的封闭和很多权限的限制导致了我们在开发...
  • iOS开发中,有可能就需要跳转到系统的设置界面去配置一些参数,下面就简单介绍一下如何跳转到界面中, 1、在UIApplication头文件中有一个属性UIApplicationOpenSettingsURLString用于打开系统的设置界面,但是只...
1 2 3 4 5 ... 20
收藏数 57,438
精华内容 22,975