如何在 Swift 的权限对话框中处理不允许选项

Posted

技术标签:

【中文标题】如何在 Swift 的权限对话框中处理不允许选项【英文标题】:How to handle the Don't Allow option in permission dialogue in Swift 【发布时间】:2015-07-30 14:34:38 【问题描述】:

我正在开发一个使用 PHAssets 类方法访问用户照片库的应用程序。一旦用户选择他的选项允许或不允许,如何能够再次“访问您的照片”权限对话框。如果用户选择允许我们如何同时获取数据。 其次,我们如何处理 Swift 中的“不允许”选项。 代码如下:

覆盖 func viewDidLoad() super.viewDidLoad()

    // Do any additional setup after loading the view, typically from a nib.

        let images = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: nil)
        let targetSize: CGSize = CGSize(width: 350, height: 480)//  target size
        let contentMode: PHImageContentMode = PHImageContentMode.AspectFill //  content mode
        images.enumerateObjectsUsingBlock 
        object, index, stop in

        let options = PHImageRequestOptions()
        options.synchronous = true
        options.deliveryMode = .HighQualityFormat


            PHImageManager.defaultManager().requestImageForAsset(object as! PHAsset, targetSize: targetSize, contentMode: contentMode, options: options) 
                image, info in
                self.myCol.append(image)

            
        
       ImageCol.store = myCol




【问题讨论】:

【参考方案1】:
    您无法再次显示“访问您的照片”权限对话框。显示后,只能在 ios 设置中更改。 允许选项:使用PHImageManager.defaultManager().requestImageForAsset,您可以立即访问照片。 不允许选项:如果用户不允许,您需要让他在设置的 iOS 中允许:UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)) 查看权限状态:Determine if the access to photo library is set or not - phphotoLibrary (iOS 8)

【讨论】:

实际上我无法处理所选选项。就像用户选择了 Ok 所以我的代码应该执行并填充数组。但它不是在同一时间重新启动应用程序时填充数据 尝试关注:developer.apple.com/library/ios/samplecode/UsingPhotosFramework/…

以上是关于如何在 Swift 的权限对话框中处理不允许选项的主要内容,如果未能解决你的问题,请参考以下文章

如何取消Access 用户和组权限

在首先按下不允许后如何授予对 react-native-camera 的访问权限?

如何忘记 Android M 运行时权限对话框中的“不再询问”选项

如何在 Flutter 中请求和检查权限

MacBookAir电脑粘贴到D盘没有权限

“无法保存对SAM权限所做的更改”对这样的限制怎么突破