美文网首页
iOS 16 跳转系统设置相应页面

iOS 16 跳转系统设置相应页面

作者: Kpengs | 来源:发表于2023-07-04 10:57 被阅读0次

    前言

    有个需求是根据App未打开权限跳转相应的设置页面,如WIFI,蓝牙,通知等等.
    经过调研后有以下结论

    iOS 10 之后苹果加强了对权限和隐私的控制,不允许App跳转到相应的设置页面,建议是跳转到相应App的设置界面如下示例图:
    应用设置页

    此方式仅需要使用代码

    //跳转App应用设置
    if let url = URL(string: UIApplication.openSettingsURLString) {
        if UIApplication.shared.canOpenURL(url) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
    }
    

    注:此方法,必须App有相应权限才会跳转,如果是一个新的App没用调取任何权限则只会跳转到iOS设置首页,如果App调用了定位,通知,则会跳转到应用设置页且展示定位和通知的选项

    跳转到相应页面

    那么跳转到相应页面的需求是否能实现呢?

    是可以的!

    首先我们看看iOS 10 以后网络上的资料

    打开通用设置: App-Prefs:root=General
    打开关于本机: App-Prefs:root=General&path=About
    打开软件更新: App-Prefs:root=General&path=SOFTWARE_UPDATE_LINK
    打开网络设置: App-Prefs:root=General&path=Network
    打开Wi-Fi设置: App-Prefs:root=WIFI
    打开蓝牙设置: App-Prefs:root=Bluetooth
    打开移动数据设置: App-Prefs:root=MOBILE_DATA_SETTINGS_ID
    打开运营商设置: App-Prefs:root=Carrier
    打开个人热点设置: App-Prefs:root=INTERNET_TETHERING
    打开声音和振动设置: App-Prefs:root=Sounds
    打开显示和亮度设置: App-Prefs:root=Brightness
    打开壁纸设置: App-Prefs:root=Wallpaper
    打开Siri设置: App-Prefs:root=SIRI
    打开Touch ID和密码设置: App-Prefs:root=TOUCHID_PASSCODE
    打开Face ID和密码设置: App-Prefs:root=PASSCODE
    打开隐私设置: App-Prefs:root=Privacy
    打开位置服务设置: App-Prefs:root=LOCATION_SERVICES
    打开日期和时间设置: App-Prefs:root=General&path=DATE_AND_TIME
    打开iCloud设置: App-Prefs:root=CASTLE
    打开iCloud存储空间设置: App-Prefs:root=CASTLE&path=STORAGE_AND_BACKUP

    在最新的系统中 这样设置无效,只会跳转到首页
    经过查询资料后发现,在文章发布日期时用
    App-prefs:WIFI格式的字符串是可以跳转的
    如:App-prefs:WIFI,App-prefs: Bluetooth,App-prefs: INTERNET_TETHERING

    示例代码:

            let url = URL(string: "App-prefs:WIFI")!
            if UIApplication.shared.canOpenURL(url) {
                UIApplication.shared.open(url)
            }
    

    总结

    目前官方推荐的实现方式是跳转App应用设置页面,但是要实现跳转相应的设置页面也是有方法做到的(相关资料说此方法被苹果官方认定为私有API,有上架被拒绝的风险,所以在使用并且上架时需和领导或产品进行讨论)

    个人建议 使用跳转App应用设置的方案基本是可以实现相应的需求的,在不是必须要跳转到系统的设置页时建议使用方案一,避免被拒绝风险.

    相关文章

      网友评论

          本文标题:iOS 16 跳转系统设置相应页面

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