Я нажал «отменить» во всплывающем окне, которое запрашивает разрешение для библиотеки фотографий в приложении, которое я сделал. Это происходит из-за чего-то, чего я не делал, а из-за ОС.
Теперь мне нужен запасной вариант, если пользователь снова попытается нажать кнопку библиотеки фотографий. В статусе авторизации отказано. Я доказал, проверив это так:
let status = PHPhotoLibrary.authorizationStatus()
switch status {
case .authorized:
print("authorized")
case .denied:
print("denied") // it is denied
case .notDetermined:
print("notDetermined")
case .restricted:
print("restricted")
}
Как мне снова открыть всплывающее окно с запросом разрешения на доступ к фото-библиотеке? Я искал везде и не нашел ничего, что работает.
Я надеялся, что это было что-то вроде этого, но в PHPhotoLibrary нет члена requestAccess:
PHPhotoLibrary.requestAccess(for: ???) { response in
if response {
//access granted
} else {
}
}
Если статус находится на . notDetermined
, приложение автоматически показывает предупреждение пользователю, но если статус был на .restricted
или denied
, вы не можете ничего сделать, чтобы снова запросить у пользователя доступ к фотографиям, как в оригинале, но вы можете сделать настраиваемое оповещение и попросите пользователя предоставить вам доступ к фотографиям, и, если пользователь принял ваш запрос, проведите пользователя к настройке и попросите его включить ваш доступ вручную!
Я обновил ответ. ответ тот же. Apple не позволяет разработчику запрашивать доступ более одного раза. Итак, единственный способ - это то, что я сказал выше
Понятно, значит, мне нужен раздел настроек для этого приложения. Вау, это намного сложнее, чем я думал. Спасибо за информацию.
В случае, если это поможет, если вы хотите перенаправить своего пользователя в настройки, вы можете сделать это, выполнив UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: nil)
.
Какая это библиотека? Use of unresolved identifier 'PHPhotoLibrary'
Просто примечание: это отрицается, а не ограничивается. Как мне создать настраиваемое предупреждение о разрешении и фактически установить разрешение на основе ответа пользователя?