ios向用户发起权限申请

摄像头权限
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"
]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容