美文网首页IOS
ios向用户发起权限申请

ios向用户发起权限申请

作者: child_cool | 来源:发表于2017-07-13 10:03 被阅读614次
    摄像头权限
    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"
    ]
    
    

    相关文章

      网友评论

        本文标题:ios向用户发起权限申请

        本文链接:https://www.haomeiwen.com/subject/lgqwhxtx.html