IOS

ios向用户发起权限申请

2017-07-13  本文已影响614人  child_cool
摄像头权限
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    switch (status) {
        case AVAuthorizationStatusNotDetermined:{
            // 许可对话没有出现,发起授权许可
            
            [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
                dispatch_async(dispatch_get_main_queue(), ^{
                    if (granted) {
                        ScanViewController *scanViewController = [[ScanViewController alloc] initWithType:3];;
                        [self.navigationController pushViewController:scanViewController animated:NO];
                    }else{
                        //用户拒绝
                        ScanViewController *scanViewController = [[ScanViewController alloc] initWithType:3];
                        [self.navigationController pushViewController:scanViewController animated:NO];
                    }
                });
            }];
        }
            break;
        case AVAuthorizationStatusAuthorized:{
            // 已经开启授权,可继续
            ScanViewController *scanViewController = [[ScanViewController alloc] initWithType:3];
            [self.navigationController pushViewController:scanViewController animated:NO];
        }
            break;
        case AVAuthorizationStatusDenied:
        case AVAuthorizationStatusRestricted: {
            // 用户明确地拒绝授权,或者相机设备无法访问
            ScanViewController *scanViewController = [[ScanViewController alloc] initWithType:3];
            [self.navigationController pushViewController:scanViewController animated:NO];
        }
            break;
        default:
            break;
    }

麦克风权限
 [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
            dispatch_async(dispatch_get_main_queue(), ^{
                AVAuthorizationStatus statusVideo = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
                AVAuthorizationStatus statusAudio = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
                [ws judgeLianMaiLocationWithVideoPermission:statusVideo AudioPermission:statusAudio];
                [ws.lianMaiView initUIWithVideoPermission:statusVideo AudioPermission:statusAudio];
            });
        }];
iOS 隐私权限和通过openURL实现跳转实例

<key>NSPhotoLibraryUsageDescription</key> 
<string>访问相册</string>
 
<key>NSCameraUsageDescription</key> 
<string>访问相机</string> 
 
<key>NSContactsUsageDescription</key>
<string>访问通讯录</string>
 
<key>NSMicrophoneUsageDescription</key> 
<string>访问麦克风</string> 
 
<key>NSAppleMusicUsageDescription</key> 
<string>访问媒体资料库</string>
 
<key>NSLocationUsageDescription</key> 
<string>访问位置</string> 
 
<key>NSLocationWhenInUseUsageDescription</key> 
<string>使用期间访问位置</string> 
 
<key>NSLocationAlwaysUsageDescription</key> 
<string>始终访问位置</string> 
 
<key>NSCalendarsUsageDescription</key> 
<string>访问日历</string> 
 
<key>NSRemindersUsageDescription</key> 
<string>访问提醒事项</string> 
 
<key>NSMotionUsageDescription</key> 
<string>访问运动与健身</string> 
 
<key>NSHealthUpdateUsageDescription</key> 
<string>访问健康更新 </string> 
 
<key>NSHealthShareUsageDescription</key> 
<string>访问健康分享</string> 
 
<key>NSBluetoothPeripheralUsageDescription</key> 
<string>访问蓝牙</string> 
 
<key>NSSiriUsageDescription</key>
<string>访问Siri</string>
 
  
<key>NSSpeechRecognitionUsageDescription</key>
<string>访问语音识别</string>

openUrl

开发中使用以下代码可以实现快速拨打电话
NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];

if
(phoneVersion.floatValue < 10.0) {

  
//iOS10 以前使用

  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@
"[Tel://123456](tel://123456)"
]];

}

else
{

  
//iOS10 以后使用

  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@
"[Tel://123456](tel://123456)"
]

                    
options:@{}

               
completionHandler:nil];

}

只要给出对应的URL,系统就可以直接跳:
//拨打电话

[NSURL URLWithString:@
"[tel://123456](tel://123456)"
]

//发送短信

[NSURL URLWithString:@
"[sms://123456](sms://123456)"
]

//发邮件

[NSURL URLWithString:@
"[mailto://123456@163.com](mailto://123456@163.com)"
]

//前往App Store

[NSURL URLWithString:@
"itms-[apps://](apps://)"
]

//使用Safari访问网址

[NSURL URLWithString:@
"[http://www.baidu.com](http://www.baidu.com/)"
]

//前往iBook

[NSURL URLWithString:@
"itms-[books://](books://)"
]

//发起Facetime

[NSURL URLWithString:@
"[facetime://](facetime://)"
]

//8、调用 地图Map

[NSURL URLWithString:@
"[maps://](maps://)"
]

//9、调用 Music

[NSURL URLWithString:@
"[music://](music://)"
]

//10、跳转到系统设置相关界面

  
// iOS10 以前

  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@
"prefs:root=LOCATION"
] options:@{} completionHandler:nil];

  
// iOS10 以后

  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@
"App-Prefs:root=LOCATION"
] options:@{} completionHandler:nil];

 
#pragma mark - 以下为跳转设置的对应方式

//设置

[NSURL URLWithString:UIApplicationOpenSettingsURLString]

 
//iCloud

[NSURL URLWithString:@
"App-Prefs:root=CASTLE"
]

 
//WIFI

[NSURL URLWithString:@
"App-Prefs:root=WIFI"
]

 
//蓝牙

[NSURL URLWithString:@
"App-Prefs:root=Bluetooth"
]

 
//蜂窝数据

[NSURL URLWithString:@
"App-Prefs:root=MOBILE_DATA_SETTINGS_ID"
]

 
//通知

[NSURL URLWithString:@
"App-Prefs:root=NOTIFICATIONS_ID"
]

 
//通用

[NSURL URLWithString:@
"App-Prefs:root=General"
]

//关于手机

[NSURL URLWithString:@
"App-Prefs:root=General&path=About"
]

//辅助功能

[NSURL URLWithString:@
"App-Prefs:root=General&path=ACCESSIBILITY"
]

//日期与时间

[NSURL URLWithString:@
"App-Prefs:root=General&path=DATE_AND_TIME"
]

//键盘设置

[NSURL URLWithString:@
"App-Prefs:root=General&path=Keyboard"
]

 
//显示与亮度

[NSURL URLWithString:@
"App-Prefs:root=DISPLAY"
]

 
//墙纸设置

[NSURL URLWithString:@
"App-Prefs:root=Wallpaper"
]

 
//声音

[NSURL URLWithString:@
"App-Prefs:root=Sounds"
]

 
//Siri

[NSURL URLWithString:@
"App-Prefs:root=Siri"
]

 
//隐私

[NSURL URLWithString:@
"App-Prefs:root=Privacy"
]

//定位

[NSURL URLWithString:@
"App-Prefs:root=Privacy&path=LOCATION"
]

 
//电池电量

[NSURL URLWithString:@
"App-Prefs:root=BATTERY_USAGE"
]

 
//iTunes Store 与 App Store

[NSURL URLWithString:@
"App-Prefs:root=STORE"
]

上一篇下一篇

猜你喜欢

热点阅读