iOS10跳转系统设置的正确姿势
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS10跳转系统设置的正确姿势相关的知识,希望对你有一定的参考价值。
参考技术A 在ios10更新后,系统设置跳转被禁用,只能跳转App设置? NO, NO, NO, 看这里,又可以换个姿势愉快的跳转啦。其实方法很简单,例如原有跳转Wi-Fi设置是"prefs:root=WIFI",新的写法是"App-Prefs:root=WIFI"。怎么样,是不是很简单!!!
在非iOS10手机中,也可以用此方法进行跳转,但不保证跳转正确性
非iOS10系统跳转,可以参考 这里(未测试) 。
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=ACCESSIBILITY
通用-语言与地区App-Prefs:root=General&path=INTERNATIONAL
通用-还原App-Prefs:root=Reset
墙纸App-Prefs:root=Wallpaper
SiriApp-Prefs:root=SIRI
隐私App-Prefs:root=Privacy
SafariApp-Prefs:root=SAFARI
音乐App-Prefs:root=MUSIC
音乐-均衡器App-Prefs:root=MUSIC&path=com.apple.Music:EQ
照片与相机App-Prefs:root=Photos
FaceTimeApp-Prefs:root=FACETIME
iOS应用内跳转到系统设置页面
参考技术A 在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等。在iOS6之后,第三方应用需要跳转系统设置界面,需要在URL type中添加一个Prefs值,如下图:需要设置Prefs
设置跳转有三种方式,每一种的使用场景都不同。 并且你在跳转到系统中自己应用下面设置的时候,你的应用要提前至少申请了某一个权限,如通知,定位等。否则,会引起崩溃。
当iOS系统版本 < iOS 10.0 时
当iOS系统版本 >=iOS 10.0 时
当 iOS系统版本 <= iOS7时 , 只能跳转到 系统设置页面
当 iOS系统版本 >= iOS8 ,支持跳转到第三方应用的设置界面中
使用prefs:root=bundleID ,bundleID是你第三方应用工程的唯一ID
局限性:只支持iOS8,iOS9系统,在iOS10系统上,不会跳转。
在iOS7系统上,仅仅只是跳转到设置应用,不推荐使用。
UIApplicationOpenSettingsURLString字段,是在iOS8上才提供的,支持iOS8,iOS9,iOS10系统,推荐使用。
跳转。
而 prefs:root=bundleID和 prefs:root=服务 都将不起作用。
方式一:prefs:root=某项服务 适用于 小于 iOS10的系统;
方式二:prefs:root=bundleID 适用于 大于等于iOS8系统,小于iOS10的系统
方式三:UIApplicationOpenSettingsURLString 适用于 大于等于iOS8的系统
以上是关于iOS10跳转系统设置的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章