前言
一般应用内,如果用户第一次对系统的某种隐私(相册、蓝牙、定位、麦克风等)点击了不允许,那么在用户下次使用到时,应该提醒用户去开启以使用之前被屏蔽的访问的隐私功能。那么应该怎么设置才能较好的兼容目前市场大部分中系统版本呢?首先我们应该在使用到相关隐私是弹出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
就可以啦。
网友评论