美文网首页奔跑吧 iOS
IOS应用首次访问系统相册,授权界面操作后马上刷新数据

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

作者: nzbypl | 来源:发表于2016-06-23 10:53 被阅读1562次

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

贴一下代码:

```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访问,没有权限弹出授权窗口,点击同意后会回调,然后也可以马上访问,不需要定时器啥的。

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/erchkttx.html