如何将 PHPickerViewController 上显示的图像过滤为那些被选择限制访问的图像

问题描述

如何将 PHPickerViewController 上显示的图像过滤为用户在有限访问权限下选择的图像?还是我需要使用不同的选择器?我已经为此苦苦挣扎了几天。任何帮助,将不胜感激。提前致谢。

用户点击按钮时: 1-5个是自动

  1. 警报随相机或照片库一起出现

  2. 他们选择照片库

  3. 授权警告显示为“选择照片...”、“允许访问所有照片”或“不允许”

  4. 他们点击选择照片 = .limited

  5. 显示presentLimitedLibraryPicker,供用户选择想要允许的照片并点击完成。

  6. 现在我希望选择器显示用户刚刚选择的图像的过滤选项。似乎这也将是自动的。不是...

这仅显示用户为有限访问做出选择的相同选择器。

data

.limited 的情况是什么?

PHPhotoLibrary.shared().presentLimitedLibraryPicker(from: self)

解决方法

您误解了访问受限的含义。它限制了您可以在照片库中读取和写入的信息。

但是您的代码首先不会从照片库中读取。你在说

config = PHPickerConfiguration()

所以这意味着您根本没有照片库访问权限。您只能获得图像副本。因此,您不需要任何许可来显示选择器,而且用户限制对您没有任何区别。实际上,您可以扔掉所有与授权相关的代码;它没有效果。没有它,您的选择器将完全相同。

如果您需要通过选择器访问照片库,您应该调用

https://developer.apple.com/documentation/photokit/phpickerconfiguration/3616114-init

在那种情况下,当您尝试访问实际 PHAsset 时,用户限制对您很重要。但是您的代码从不这样做。您正在请求不需要的许可。