Swift, как показать предупреждение о запросе разрешения для библиотеки фотографий?

Я нажал «отмена» во всплывающем окне, которое запрашивает разрешение для библиотеки фотографий в приложении, которое я сделал. Это происходит из-за того, что я не делал, а из ОС.

Теперь мне нужен запасной вариант, если пользователь снова попытается нажать кнопку библиотеки фотографий. Статус авторизации отклонен. Я доказал, проверив это следующим образом:

    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 {

    }
}

person Chewie The Chorkie    schedule 01.05.2018    source источник


Ответы (1)


Если статус . notDetermined, приложение автоматически показывает предупреждение пользователю, но если статус был .restricted или denied, вы не можете ничего сделать, чтобы снова запросить у пользователя доступ к фотографиям, как к исходной, но вы можете сделать так, чтобы пользовательское оповещение и попросите пользователя предоставить вам доступ к фотографиям, и если пользователь принял ваш запрос, направьте пользователя к настройке и попросите его включить ваш доступ вручную!

person Seyed Samad Gholamzadeh    schedule 01.05.2018
comment
Просто примечание: это запрещено, а не ограничено. Как сделать собственное оповещение о разрешении и фактически установить разрешение на основе ответа пользователя? - person Chewie The Chorkie; 01.05.2018
comment
Я обновил ответ. ответ тот же. Apple не позволяет разработчику запрашивать доступ более одного раза. Так что единственный способ - это то, что я сказал выше - person Seyed Samad Gholamzadeh; 01.05.2018
comment
Понятно, поэтому мне нужен раздел настроек для этого приложения. Вау, это намного сложнее, чем я думал. Спасибо за информацию. - person Chewie The Chorkie; 01.05.2018
comment
В случае, если это поможет, если вы хотите перенаправить своего пользователя в настройки, вы можете сделать это, выполнив UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: nil) - person Julien Perrenoud; 02.05.2018
comment
Что это за библиотека? Use of unresolved identifier 'PHPhotoLibrary' - person Amg91; 14.12.2018