前言
最近在開發中遇到了獲取相冊相機權限的需求,通過查找相關的資料終于解決了,因為之后會用到所以決定記錄下,下面話不多說了,來一起看看詳細的介紹吧。
注意:須先在info.plist
中添加兩個keyNSPhotoLibraryUsageDescription, 和NSCameraUsageDescription, 內容填提示內容.
相機
// 使用self.cameraPermissions(authorizedBlock: { print("打開相機")}, deniedBlock: { print("沒有權限使用相機")})// 相機權限class func cameraPermissions(authorizedBlock: OperationBlock?, deniedBlock: OperationBlock?) { let authStatus = AVCaptureDevice.authorizationStatus(for: AVMediaType.video) // .notDetermined .authorized .restricted .denied if authStatus == .notDetermined { // 第一次觸發授權 alert AVCaptureDevice.requestAccess(for: .video, completionHandler: { (granted: Bool) in self.cameraPermissions(authorizedBlock: authorizedBlock, deniedBlock: deniedBlock) }) } else if authStatus == .authorized { if authorizedBlock != nil { authorizedBlock!() } } else { if deniedBlock != nil { deniedBlock!() } }}
相冊
iOS9.0后ALAssetsLibrary過時了, 換成使用PHPhotoLibrary
// 使用self.photoAlbumPermissions(authorizedBlock: { print("打開相冊")}, deniedBlock: { print("沒有權限打開相冊")})// 相冊權限class func photoAlbumPermissions(authorizedBlock: OperationBlock?, deniedBlock: OperationBlock?) { let authStatus = PHPhotoLibrary.authorizationStatus() // .notDetermined .authorized .restricted .denied if authStatus == .notDetermined { // 第一次觸發授權 alert PHPhotoLibrary.requestAuthorization { (status:PHAuthorizationStatus) -> Void in self.photoAlbumPermissions(authorizedBlock: authorizedBlock, deniedBlock: deniedBlock) } } else if authStatus == .authorized { if authorizedBlock != nil { authorizedBlock!() } } else { if deniedBlock != nil { deniedBlock!() } }}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答