Swift 主动获取相册权限,监听点击事件

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 
  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)
    {
        // 不需要管失败成功 目的在与 弹出授权框
    }

到此为止已经完成需求 谢谢

你可能感兴趣的:(Swift 主动获取相册权限,监听点击事件)