检查是否成功保存到相机胶卷

时间:2019-02-15 07:26:05

标签: ios swift camera privacy phphotolibrary

如何检查用户在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 :(得分:0)

由于您要尝试保存照片至照片库,因此需要“ 隐私-照片库添加用法说明”和“ 隐私-媒体”库使用说明也在您的Info.plist文件中设置。

您的应用程序显示未确定授权状态,因为用户尚未授予或拒绝您的访问权限,因为您尚未请求!

仅为给您一些背景信息,以下是不同的情况,并说明了授权状态可以返回的原因: (摘自Apple developer网站。)

情况未确定:访问照片库需要明确的用户许可,但用户尚未授予或拒绝这种许可。

情况受限制的:您的应用无权访问照片库,并且用户无法授予此类权限。

情况被拒绝:用户已明确拒绝您的应用访问照片库。

案例已授权:用户已明确授予您的应用访问照片库的权限。