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!() } } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。