如何检查用户在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
。
答案 0 :(得分:0)
由于您要尝试保存照片至照片库,因此需要“ 隐私-照片库添加用法说明”和“ 隐私-媒体”库使用说明也在您的Info.plist文件中设置。
您的应用程序显示未确定授权状态,因为用户尚未授予或拒绝您的访问权限,因为您尚未请求!
仅为给您一些背景信息,以下是不同的情况,并说明了授权状态可以返回的原因: (摘自Apple developer网站。)
情况未确定:访问照片库需要明确的用户许可,但用户尚未授予或拒绝这种许可。
情况受限制的:您的应用无权访问照片库,并且用户无法授予此类权限。
情况被拒绝:用户已明确拒绝您的应用访问照片库。
案例已授权:用户已明确授予您的应用访问照片库的权限。