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跳转系统设置的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章

iOS 10 跳转系统设置

IOS系统设置页面跳转

iOS10 App跳转到系统设置

iOS应用内跳转到系统设置页面

iOS10 下APP内跳转到系统设置WIFI界面

ios跳转到系统设置