title: Swift 主动获取相册权限,监听点击事件
categories:
- Code
- iOS
tags: - PHPhotoLibrary
- ALAssetsLibrary
前两天在工作中,需要主动挑起获取使用相册的权限,想了各种办法,最后总结出两种方法,下面来看看是怎么实现的。
主动调起授权提示框
第一种 系统方法
swift版本 8.0 之后
import Photos //导入库
if PHPhotoLibrary.authorizationStatus() == .NotDetermined {
PHPhotoLibrary.requestAuthorization({ (status) in
if status == .Authorized {
print("点同意")
} else if status == .Denied || status == .Restricted{
print("点拒绝")
}
})
} else {
print("无权限")
}
}
oc 版本 8.0之前
//导入库 #import<AssetsLibrary/ALAssetsLibrary.h>
if ([ALAssetsLibrary authorizationStatus] == ALAuthorizationStatusNotDetermined) {
ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (*stop) {
NSLog(@"好");
return;
}
*stop = TRUE;
} failureBlock:^(NSError *error) {
NSLog(@"不允许");
[self dismissViewControllerAnimated:YES completion:nil];
}];
}
第二种 下载图片到本地以主动获取权限提示框
@IBAction func btnClick(sender: AnyObject) {
UIImageWriteToSavedPhotosAlbum(UIImage(), self, #selector(ViewController.image(_:didFinishSavingWithError:contextInfo:)), nil)
}
func image(image: UIImage,didFinishSavingWithError: AnyObject?,contextInfo:UnsafeMutablePointer<Void>)
{
// 不需要管失败成功 目的在与 弹出授权框
}






网友评论