适配iOS8~iOS11跳转系统设置正确姿势

前言

一般应用内,如果用户第一次对系统的某种隐私(相册、蓝牙、定位、麦克风等)点击了不允许,那么在用户下次使用到时,应该提醒用户去开启以使用之前被屏蔽的访问的隐私功能。那么应该怎么设置才能较好的兼容目前市场大部分中系统版本呢?首先我们应该在使用到相关隐私是弹出AlertView提示用户去开启相关权限,这个在AlterView中设置按钮直接让用户点击然后跳转相关设置的地方进行打开。

跳转至系统设置页面的正确姿势(适配 iOS 8.1 ~ iOS11.2.6)

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

如果想跳转更多相关的设置,只需要App-Prefs:root=Privacy&path=CAMERA替换成你想要的权限 即可

    NSURL *url1 = [NSURL URLWithString:@"App-Prefs:root=Privacy&path=CAMERA"];


名称  对应字符串
无线局域网   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
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

就可以啦。

你可能感兴趣的:(适配iOS8~iOS11跳转系统设置正确姿势)