swift相册相机的权限处理示例详解
前言
最近在开发中遇到了获取相册相机权限的需求,通过查找相关的资料终于解决了,因为之后会用到所以决定记录下,下面话不多说了,来一起看看详细的介绍吧。
注意:须先在info.plist中添加两个keyNSPhotoLibraryUsageDescription,和NSCameraUsageDescription,内容填提示内容.
相机
//使用
self.cameraPermissions(authorizedBlock:{
print("打开相机")
},deniedBlock:{
print("没有权限使用相机")
})
//相机权限
classfunccameraPermissions(authorizedBlock:OperationBlock?,deniedBlock:OperationBlock?){
letauthStatus=AVCaptureDevice.authorizationStatus(for:AVMediaType.video)
//.notDetermined.authorized.restricted.denied
ifauthStatus==.notDetermined{
//第一次触发授权alert
AVCaptureDevice.requestAccess(for:.video,completionHandler:{(granted:Bool)in
self.cameraPermissions(authorizedBlock:authorizedBlock,deniedBlock:deniedBlock)
})
}elseifauthStatus==.authorized{
ifauthorizedBlock!=nil{
authorizedBlock!()
}
}else{
ifdeniedBlock!=nil{
deniedBlock!()
}
}
}
相册
iOS9.0后ALAssetsLibrary过时了,换成使用PHPhotoLibrary
//使用
self.photoAlbumPermissions(authorizedBlock:{
print("打开相册")
},deniedBlock:{
print("没有权限打开相册")
})
//相册权限
classfuncphotoAlbumPermissions(authorizedBlock:OperationBlock?,deniedBlock:OperationBlock?){
letauthStatus=PHPhotoLibrary.authorizationStatus()
//.notDetermined.authorized.restricted.denied
ifauthStatus==.notDetermined{
//第一次触发授权alert
PHPhotoLibrary.requestAuthorization{(status:PHAuthorizationStatus)->Voidin
self.photoAlbumPermissions(authorizedBlock:authorizedBlock,deniedBlock:deniedBlock)
}
}elseifauthStatus==.authorized{
ifauthorizedBlock!=nil{
authorizedBlock!()
}
}else{
ifdeniedBlock!=nil{
deniedBlock!()
}
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。