在从 UIActivityController 拒绝保存图像的权限后,如何将用户重定向到设置?
Posted
技术标签:
【中文标题】在从 UIActivityController 拒绝保存图像的权限后,如何将用户重定向到设置?【英文标题】:How do you redirect user to settings after denying permissions for Save Image from UIActivityController? 【发布时间】:2019-07-17 00:09:50 【问题描述】:用户在我的应用中拍照后,会显示一个 UIUserActivity,允许用户保存和图像。出现一个弹出窗口并请求允许将照片写入用户相册。但是,如果用户拒绝,则无法提示用户重定向到照片库。即使已经请求权限,phphoto 授权状态总是返回未确定。我正在寻找一些可以满足的东西:
如果用户想要保存照片,他们应该能够拒绝,但会继续提示他们授予应用程序权限。
如果用户拒绝,我希望“保存照片”选项保留在 UIUserActivity 中作为潜在选项
我怎样才能做到这一点?
我已尝试使用 PHPhotoLibrary 授权状态,但它始终返回未确定。我尝试检查 .undetermined 并使用 PHPhotoLibrary 请求访问用户的相机胶卷,但是如果用户此时拒绝,则保存照片的选项将从 UIUserActivity 弹出窗口中完全删除。
代码:
activityViewController.completionWithItemsHandler = activity, success, items, error in
if success
if let activity = activity
...
case .saveToCameraRoll:
handleCameraRollPermission()
func handleCameraRollPermission(status: PHAuthorizationStatus? = nil, completion: @escaping ((Bool) -> Void))
let authorizationStatus = status ?? PHPhotoLibrary.authorizationStatus()
switch authorizationStatus
case .denied, .restricted:
showPermissionMissingAlert(completion: completion)
case .notDetermined:
PHPhotoLibrary.requestAuthorization (status) in
switch(status)
case .denied, .restricted, .notDetermined:
self.showPermissionMissingAlert(completion: completion)
default:
break
default:
completion(true)
【问题讨论】:
【参考方案1】:这可能有点过头了,但您可以为 activityView 创建一个自定义操作部分。您可以找到更多关于 here 的信息并向下滚动到 Adding a custom action
部分。
基本上,您会制作一个自定义保存按钮,无论权限状态如何,该按钮都会持续存在。当它被点击时,您可以检查他们的授权状态并从那里开始。
【讨论】:
以上是关于在从 UIActivityController 拒绝保存图像的权限后,如何将用户重定向到设置?的主要内容,如果未能解决你的问题,请参考以下文章
更改 UIActivityController 的标题文本颜色
邮件 - 从 UIActivityController 添加帐户屏幕
根据选定的活动共享不同的内容 - UIActivityController
从 iOS 中的 UIActivityController 选项中删除注释