Проверьте, было ли успешным сохранение в рулон камеры - PullRequest
0 голосов
/ 15 февраля 2019

Как я могу проверить, смог ли пользователь сохранить снимок с камеры во время activityViewController?

Например, у меня есть контроллер представления активности, который предлагает возможность сохранить в рулон камеры.После того, как пользователь сохраняет изображение, мое приложение отображает подсказку, сообщающую пользователю, что изображение было сохранено.Тем не менее, когда пользователи нажимают на значок «Сохранить в камеру», ОС получает запрос на разрешение, чтобы мое приложение могло сохранять фотографии в своей камере.Если пользователь отклоняет разрешение, activityViewController.completionWithItemsHandler все равно возвращает успех, даже если пользователь не сохранил изображение в камеру.

Как я могу проверить, действительно ли пользователь смог сохранить изображение в фотопленке?

activityViewController.completionWithItemsHandler = { activity, success, items, error in
                if success {
                    if let activity = activity {
                        switch activity {
                        case .postToFacebook:
                            self.view.showToast(with: "Successfully posted to Facebook.")
                        case .postToTwitter:
                            self.view.showToast(with: "Successfully posted to Twitter.")
                        case .message:
                            self.view.showToast(with: "Your message has been sent.")
                        case .mail:
                            self.view.showToast(with: "Your email has been sent.")
                        case .saveToCameraRoll:
                            if PHPhotoLibrary.authorizationStatus() == .denied {
                                self.view.show(alertForDeniedPermission(to: .photoLibraryAccess), animated: true)
                            } else {
                                self.view.showToast(with: "Your picture has been saved.")
                            }
                        default:
                            self.view.showToast(with: "Success!")
                        }
                    }
                }

Проверка на PHPhotoLibrary.authorizationStatus() не работает, поскольку перечисление всегда . notDetermined.Я думаю, потому что мое приложение запрашивает только Privacy - Photo Library Additions Usage Description, а не Privacy - Photo Library Usage Description.

1 Ответ

0 голосов
/ 15 февраля 2019

Поскольку вы пытаетесь сохранить фотографию в библиотеке фотографий, вам понадобятся " Конфиденциальность - описание использования библиотек фотографий * " и Конфиденциальность - использование библиотеки мультимедиаОписание установлено и в вашем файле Info.plist.

Ваше приложение отображается не определено для статуса авторизации, поскольку пользователь не может предоставить или отказать в вашем доступе, потому что вы еще не запросили его!

Просто чтобы дать вам некоторый контекст, вот различные случаи с объяснениями, которые может вернуть статус авторизации: (взято с Apple developer веб-сайт.)

case не определено : для доступа к библиотеке фотографий требуется явное разрешение пользователя, но пользователь еще не предоставил или не отклонил такое разрешение.

дело ограничено : Ваше приложение неавторизован доступ к библиотеке фотографий, и пользователь не может предоставить такое разрешение.

case denied : пользователь явно запретил вашему приложению доступ кБиблиотека фотографий.

case авторизован : пользователь явно предоставил вашему приложению доступ к библиотеке фотографий.

...