bau*_*sic 3 ios phphotolibrary
为了进行测试,我试图重新创建系统“请求访问”弹出体验。
更新:
iOS 11下,删除App后,系统弹窗会再次显示。
(上一个问题)
应用程序第一次运行(也是唯一一次),系统弹出窗口显示,请求访问。之后,即使删除应用程序并重新启动设备也会再次触发该弹出窗口。
换句话说,设备“记住”用户请求并且无法重置它。
这是代码:
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
switch (status) {
case PHAuthorizationStatusAuthorized:
NSLog(@"PHAuthorizationStatusAuthorized");
break;
case PHAuthorizationStatusDenied:
NSLog(@"PHAuthorizationStatusDenied");
break;
case PHAuthorizationStatusNotDetermined:
NSLog(@"PHAuthorizationStatusNotDetermined");
break;
case PHAuthorizationStatusRestricted:
NSLog(@"PHAuthorizationStatusRestricted");
break;
}
}];
Run Code Online (Sandbox Code Playgroud)
当设置中关闭访问时,它会继续打印“PHAuthorizationStatusDenied”。但不显示任何弹出窗口。立即返回。
建议将“捆绑包显示名称”添加到 plist 中。尝试过没有效果,值为空、$(PRODUCT_NAME) 和不同的字符串。
清理项目,删除DrivedData(并每次从模拟器中删除应用程序)。没有运气。
更多信息:
一旦您在“设置”中关闭照片访问权限,Apple 示例代码“SamplePhotosApp”就会崩溃。
进一步阅读后,这似乎是设计使然。
来自苹果:
该方法总是立即返回。如果用户之前 授予或拒绝了照片库访问权限,则在调用时执行处理程序块;否则,它会显示警报并仅在用户响应警报后才执行该块。
如果用户被提示一次,则说“此方法总是立即返回”。之后就不会再显示该请求了。似乎没有办法(但一些自定义消息)再次使用系统消息。