Commit b88bc567 authored by pete谢兆麟's avatar pete谢兆麟

相机相册权限逻辑添加和判断

parent 389a4796
...@@ -45,6 +45,58 @@ class YHImagePickerView: UIView { ...@@ -45,6 +45,58 @@ class YHImagePickerView: UIView {
setView() setView()
} }
// 请求相机权限
@objc func takePhoto() {
AVCaptureDevice.requestAccess(for: .video) { [weak self] granted in
if granted {
// 已获得权限,可以使用相机
DispatchQueue.main.async {
if UIImagePickerController.isSourceTypeAvailable(.camera){
//创建图片控制器
let imagePicker = UIImagePickerController()
//设置代理
imagePicker.delegate = self
//设置来源
imagePicker.sourceType = .camera
//打开相机
UIViewController.current?.present(imagePicker, animated: true, completion: { () -> Void in
})
} else {
printLog("找不到相机")
}
}
} else {
DispatchQueue.main.async {
YHHUD.flash(message: "请打开相机权限")
}
}
}
}
// 请求相册权限
@objc func selectPhoto() {
PHPhotoLibrary.requestAuthorization { [weak self] status in
if status == .authorized {
DispatchQueue.main.async {
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .photoLibrary
imagePicker.modalPresentationStyle = .fullScreen
// 这一句,开始调用图库
UIViewController.current?.present(imagePicker,animated: true)
}
}
} else {
// 未获得权限,提示用户
DispatchQueue.main.async {
YHHUD.flash(message: "请打开相册权限")
}
}
}
}
required init?(coder: NSCoder) { required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented") fatalError("init(coder:) has not been implemented")
} }
...@@ -164,62 +216,6 @@ class YHImagePickerView: UIView { ...@@ -164,62 +216,6 @@ class YHImagePickerView: UIView {
removeFromSuperview() removeFromSuperview()
} }
@objc func takePhoto() {
guard getPhotoLibraryAuthorization() else {
YHHUD.flash(message: "请打开相册权限")
return
}
if UIImagePickerController.isSourceTypeAvailable(.camera){
//创建图片控制器
let imagePicker = UIImagePickerController()
//设置代理
imagePicker.delegate = self
//设置来源
imagePicker.sourceType = .camera
//打开相机
UIViewController.current?.present(imagePicker, animated: true, completion: { () -> Void in
})
} else {
printLog("找不到相机")
}
}
@objc func selectPhoto() {
guard getPhotoLibraryAuthorization() else {
YHHUD.flash(message: "请打开相册权限")
return
}
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .photoLibrary
// 这一句,开始调用图库
UIViewController.current?.present(imagePicker,animated: true)
}
}
private func getPhotoLibraryAuthorization() -> Bool {
let authorizationStatus = PHPhotoLibrary.authorizationStatus()
switch authorizationStatus {
case .authorized:
print("已经授权")
return true
case .notDetermined:
print("不确定是否授权")
// 请求授权
PHPhotoLibrary.requestAuthorization({ (status) in })
case .denied:
print("拒绝授权")
case .restricted:
print("限制授权")
break
case .limited: break
@unknown default:
break
}
return false
}
} }
extension YHImagePickerView: UIGestureRecognizerDelegate { extension YHImagePickerView: UIGestureRecognizerDelegate {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment