swift相冊相機(jī)的權(quán)限處理示例詳解
前言
最近在開發(fā)中遇到了獲取相冊相機(jī)權(quán)限的需求,通過查找相關(guān)的資料終于解決了,因?yàn)橹髸玫剿詻Q定記錄下,下面話不多說了,來一起看看詳細(xì)的介紹吧。
注意:須先在info.plist中添加兩個keyNSPhotoLibraryUsageDescription, 和NSCameraUsageDescription, 內(nèi)容填提示內(nèi)容.
相機(jī)
// 使用
self.cameraPermissions(authorizedBlock: {
print("打開相機(jī)")
}, deniedBlock: {
print("沒有權(quán)限使用相機(jī)")
})
// 相機(jī)權(quán)限
class func cameraPermissions(authorizedBlock: OperationBlock?, deniedBlock: OperationBlock?) {
let authStatus = AVCaptureDevice.authorizationStatus(for: AVMediaType.video)
// .notDetermined .authorized .restricted .denied
if authStatus == .notDetermined {
// 第一次觸發(fā)授權(quán) 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("沒有權(quán)限打開相冊")
})
// 相冊權(quán)限
class func photoAlbumPermissions(authorizedBlock: OperationBlock?, deniedBlock: OperationBlock?) {
let authStatus = PHPhotoLibrary.authorizationStatus()
// .notDetermined .authorized .restricted .denied
if authStatus == .notDetermined {
// 第一次觸發(fā)授權(quán) 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!()
}
}
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
如何使用Swift來實(shí)現(xiàn)一個命令行工具的方法
這篇文章主要介紹了如何使用Swift來實(shí)現(xiàn)一個命令行工具,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹
這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉(zhuǎn)移到Swift過程介紹,需要的朋友可以參考下2014-07-07
Swift中通過疊加UILabel實(shí)現(xiàn)混合進(jìn)度條的方法
這篇文章主要介紹了Swift中通過疊加UILabel實(shí)現(xiàn)混合進(jìn)度條的方法的相關(guān)資料,需要的朋友可以參考下2016-08-08

