IOS应用首次访问系统相册,授权界面操作后马上刷新数据

   小的第一帖,具体需求是应用首次访问系统相册,会弹出授权界面,点击确认后,马上刷新数据源显示图片出来。

贴一下代码:

```objc

if(IS_GREATER_THAN_IOS8) //ios8以上

{

PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];

if (status == PHAuthorizationStatusDenied)

{

NSLog(@"用户拒绝当前应用访问相册,我们需要提醒用户打开访问开关");

}else if (status == PHAuthorizationStatusRestricted)

{

NSLog(@"家长控制,不允许访问");

}else if (status == PHAuthorizationStatusNotDetermined)

{

//第一次访问相册,弹出授权界面。点击后定时器。这里加个定时器,判断有没有权限。思路是点击后,会执行定时器里的方法,如果点了确认,可以加载数据。点不允许,数据就加载不出来。

_time = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(TODO(写你自己的代码)) userInfo:nil repeats:YES];

}else if (status == PHAuthorizationStatusAuthorized){

// 获取所有资源的集合,并按资源的创建时间排序

TODO...(写你自己的代码)

}

}

```

ToDo

在扫描添加结果的时候停掉定时器。

if(_time)

{

[_time invalidate];

}

测试方法:

修改bundleId就可以生成新的应用,实现测试目的。

不懂可以私聊。


感觉之前的方法还是有问题,现在完善下。

-(void)GetALLphotosUsingPohotKit

{

if ([PHPhotoLibrary respondsToSelector:@selector(authorizationStatus)])

{

if ([PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusAuthorized)

{

[self readSystemPhoto];

}

else

{

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {

if (status == PHAuthorizationStatusAuthorized)

{

[self readSystemPhoto];

}

}];

}

}

else

{

[self readSystemPhoto];

}

}

这样的话不管有没权限都可以访问,有权限直接走else访问,没有权限弹出授权窗口,点击同意后会回调,然后也可以马上访问,不需要定时器啥的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容