Swift如何显示警报以请求照片库的权限?

Posted

技术标签:

【中文标题】Swift如何显示警报以请求照片库的权限?【英文标题】:Swift how to show alert to request permission for photo library? 【发布时间】:2018-05-01 18:46:33 【问题描述】:

我在一个弹出窗口上点击了“取消”,该弹出窗口询问我制作的应用程序中的照片库的权限。这来自我没有制作的东西,而是来自操作系统。

现在,如果用户尝试再次点击照片库按钮,我需要一个后备。授权状态被拒绝。我通过这种方式检查证明:

    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 

    

【问题讨论】:

【参考方案1】:

如果状态为. notDetermined,则应用程序会自动向用户显示警报,但如果状态为.restricteddenied,您将无法再次要求用户访问照片像原来的一样,但您可以制作自定义警报并要求用户授予您访问照片的权限,如果用户接受您的请求,请引导用户进入设置并要求他手动启用您的访问权限!

【讨论】:

请注意:被拒绝,不受限制。如何针对权限进行自定义警报并根据用户的响应实际设置权限? 我更新了答案。答案是一样的。 Apple 不允许开发者多次请求访问。所以唯一的办法就是我上面说的 我明白了,所以我需要为这个应用设置一个设置部分。哇,这比我想象的要复杂得多。谢谢你的信息。 如果有帮助,如果你想将用户重定向到设置,你可以通过执行UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: nil) 它是哪个库? Use of unresolved identifier 'PHPhotoLibrary'

以上是关于Swift如何显示警报以请求照片库的权限?的主要内容,如果未能解决你的问题,请参考以下文章

如何显示自定义警报以在 ios 中启用通知

Prometheus 电子邮件警报以显示指标值

Swift 中显示 UIAlertcontroller 时保持键盘打开?

swift5如何在用户授予有限访问权限以选择某些照片后仅显示有限的照片库

如何设置警报以在固定时间正确触发?

如何创建 Azure 警报以通知任何资源删除