iOS 10之后苹果对于用户隐私方面要求非常严格,如果使用到了先关功能却没有在info.plist中添加键值对一定会崩溃,所以用到了什么记得一定要加上,平时每次用的时候都要现查现去百度,今天抽时间把iOS 10 常用到的隐私权限整理一下,方便日后查找
<key>NSBluetoothPeripheralUsageDescription</key>
<string>需要获取蓝牙权限</string>
<key>NSCalendarsUsageDescription</key>
<string>日历</string>
<key>NSCameraUsageDescription</key>
<string>需要获取您的摄像头信息</string>
<key>NSContactsUsageDescription</key>
<string>需要获取您的通讯录权限</string>
<key>NSHealthShareUsageDescription</key>
<string>健康分享权限</string>
<key>NSHealthUpdateUsageDescription</key>
<string>健康数据更新权限</string>
<key>NSHomeKitUsageDescription</key>
<string>HomeKit权限</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>一直定位权限</string>
<key>NSLocationUsageDescription</key>
<string>定位权限</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>使用app期间定位权限</string>
<key>NSMicrophoneUsageDescription</key>
<string>需要获取您的麦克风权限</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>需要获取您的相册信息</string>
<key>NSRemindersUsageDescription</key>
<string>提醒事项</string>
<key>NSSiriUsageDescription</key>
<string>需要获取您的Siri权限</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>语音识别权限</string>
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>AppleTV权限</string>
<key>NSAppleMusicUsageDescription</key>
<string>Add tracks to your music library.</string>
<key>NSMotionUsageDescription</key>
<string>运动与健身权限</string>
程序一进来就判断权限
相册,需要导入#import <Photos/Photos.h>
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
dispatch_async(dispatch_get_main_queue(), ^{
if (status == PHAuthorizationStatusRestricted || status == PHAuthorizationStatusDenied)
{
// 用户拒绝,跳转到自定义提示页面
NSLog(@"用户拒绝");
}
else if (status == PHAuthorizationStatusAuthorized)
{
// 用户授权,弹出相册对话框
NSLog(@"用户同意");
}
});
}];
相机,需要导入#import <AVFoundation/AVFoundation.h>
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
switch (status) {
case AVAuthorizationStatusNotDetermined:{
//程序是第一次启动,发起授权许可,不管用户接受还是拒绝,只会弹出一次
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
if (granted) {
//第一次用户接受
NSLog(@"用户接受");
}else{
//用户拒绝
NSLog(@"用户拒绝");
}
}];
break;
}
case AVAuthorizationStatusAuthorized:{
// 已经开启授权,可继续
NSLog(@"已开启相机权限");
break;
}
case AVAuthorizationStatusDenied:
case AVAuthorizationStatusRestricted:
// 用户已经拒绝过授权,或者相机设备无法访问
NSLog(@"没有权限");
break;
default:
break;
}
未完
网友评论