swift相冊相機的權限處理示例詳解
更新時間:2017年10月31日 09:19:50 作者:hello老文
在iOS7以后要打開手機攝像頭或者相冊的話都需要權限,在iOS9中更是更新了相冊相關api的調用,那么下面這篇文章主要給大家介紹了關于swift相冊相機權限處理的相關資料,文中給出了詳細的示例代碼,需要的朋友可以參考下。
前言
最近在開發(fā)中遇到了獲取相冊相機權限的需求,通過查找相關的資料終于解決了,因為之后會用到所以決定記錄下,下面話不多說了,來一起看看詳細的介紹吧。
注意:須先在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 {
// 第一次觸發(fā)授權 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 {
// 第一次觸發(fā)授權 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!()
}
}
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉移到Swift過程介紹
這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉移到Swift過程介紹,需要的朋友可以參考下2014-07-07
Swift中通過疊加UILabel實現(xiàn)混合進度條的方法
這篇文章主要介紹了Swift中通過疊加UILabel實現(xiàn)混合進度條的方法的相關資料,需要的朋友可以參考下2016-08-08

