前言
一般應用內,如果用戶第一次對系統(tǒng)的某種隱私(相冊、藍牙、定位、麥克風等)點擊了不允許,那么在用戶下次使用到時,應該提醒用戶去開啟以使用之前被屏蔽的訪問的隱私功能。那么應該怎么設置才能較好的兼容目前市場大部分中系統(tǒng)版本呢?首先我們應該在使用到相關隱私是彈出AlertView提示用戶去開啟相關權限,這個在AlterView中設置按鈕直接讓用戶點擊然后跳轉相關設置的地方進行打開。
跳轉至系統(tǒng)設置頁面的正確姿勢(適配 iOS 8.1 ~ iOS11.2.6)
// 跳轉到設置 - 相機 / 該應用的設置界面
NSURL *url1 = [NSURL URLWithString:@"App-Prefs:root=Privacy&path=CAMERA"];
// iOS10也可以使用url2訪問,不過使用url1更好一些,可具體根據業(yè)務需求自行選擇
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
通用-語言與地區(qū) 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
就可以啦。