如果我一开始拒绝,然后转到设置并允许在设置中,在这两种情况下状态都是notDetermined,而不是拒绝然后授权。为什么会发生这种事?
当我单击“不允许”时,它不会保存图像,但是状态变为.notDetermined而不是.denied。
它保存后,我去设置->照片,取消选中“永远”和检查“添加照片只”。但是状态保持为.notDetermined,不成为.authorized。
func save(){
guard let image = imageView.image else {return}
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil)
let status = PHPhotoLibrary.authorizationStatus()
switch status {
case .authorized:
print("authorized")
return
case .notDetermined:
print("not determined")
case .denied, .restricted:
print("denied or restricted")
//please go to settings and allow access
promptToSettings()
}
}我请求允许将图像保存到照片库。当用户第一次尝试保存时,他会被问到:“应用程序想要添加到照片”“不允许”"Ok“如果用户拒绝了然后再次尝试保存,我想检查,如果状态是.denied,提示用户进入设置并允许。但是当用户第一次没有给出访问权限时,代码会转到.notDetermined块。即使在用户允许访问的设置中,它仍然保持.notDetermined。
发布于 2019-03-30 14:59:04
我下载了你的代码并运行了它。无论你说什么我都能体会到。它总是返回未确定的状态。我对您的代码做了一些进一步的分析。请在下面找到我的意见。
因此,看起来,我们需要调用"PHPhotoLibrary.requestAuthorization“方法来首先获得权限,而不是依赖其他照片访问方法(比如UIImageWriteToSavedPhotosAlbum)来获得权限。只有这样,"PHPhotoLibrary.authorizationStatus“才返回正确的状态。
还有一个附加信息:即使在删除应用程序并重新安装应用程序之后,App权限也会被保留。也来看看这个。它可能有助于您在未来解决类似的问题。iPad remembering camera permissions after delete—how to clear?
如果这解决了你的问题,请告诉我。
https://stackoverflow.com/questions/55397459
复制相似问题