微小宝上传照片显示没有权限访问目标请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微小宝上传照片显示没有权限访问目标请求相关的知识,希望对你有一定的参考价值。

参考技术A 退出重新登录。
图片突然显示没有访问权限,可能是手机卡了需要重新退出,刷新一下,然后再次登录就可以了。
微小宝是一款管理公众平台的管家软件。

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

【中文标题】swift5如何在用户授予有限访问权限以选择某些照片后仅显示有限的照片库【英文标题】:swift5 how to only display limited photo library after user has granted limited access to select some photos 【发布时间】:2020-11-07 05:56:08 【问题描述】:

在 WWDC2020 中,引入了新的 PHPickerViewController 和新的 PHPhotoLibrary.authorizationStatus(limited)。但我遇到了以下问题:

    当用户点击一个按钮以显示苹果的多个图像选择器并将 requestAuthorization 显示为代码时:

     let requiredAccessLevel: PHAccessLevel = .readWrite
     PHPhotoLibrary.requestAuthorization(for: requiredAccessLevel)  (authorizationStatus) in
           switch authorizationStatus 
           case .authorized:
               DispatchQueue.main.async 
                   self.presentImagePicker()
                
           case .limited:
               DispatchQueue.main.async 
                   self.presentImagePicker()
                
           default:
               break
           
    
    

    self.presentImagePicker() 函数:

     func presentImagePicker() 
     var configuration = PHPickerConfiguration(photoLibrary: .shared())
     configuration.filter = .images
     configuration.selectionLimit = self.imageCountMax - self.images.count
     let picker = PHPickerViewController(configuration: configuration)
     picker.delegate = self
    
     let accessLevel: PHAccessLevel = .readWrite
     let authorizationStatus = PHPhotoLibrary.authorizationStatus(for: accessLevel)
    
     switch authorizationStatus 
     case .authorized:
         DispatchQueue.main.async 
    
             self.present(picker, animated: true)
         
     case .limited:
         DispatchQueue.main.async 
             // Here I don't know how to display only limited photo library to users (after user has selected some photos through the limited access)
         
     default:
         break
     
    

我的问题:请看代码2,case .limited: DispatchQueue.main.async ,我想我应该把有限的照片库放在这个块中,但我不知道如何只显示有限的照片库用户。

【问题讨论】:

【参考方案1】:

您可以将这个PHPhotoLibrary.shared().presentLimitedLibraryPicker(from: self) 方法用于.limited

DispatchQueue.main.async 
         // Here I don't know how to display only limited photo library to users (after user has selected some photos through the limited access)
        PHPhotoLibrary.shared().register(self)
        PHPhotoLibrary.shared().presentLimitedLibraryPicker(from: self)
     

然后你必须使用委托方法来获取更新的图像。

func photoLibraryDidChange(_ changeInstance: PHChange) 
        let fetchOptions = PHFetchOptions()
        self.allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)
    

【讨论】:

我遇到了同样的问题。您能否解释一下您是如何声明 allPhotos 的? @Quailcreek : var allPhotos: PHFetchResult!

以上是关于微小宝上传照片显示没有权限访问目标请求的主要内容,如果未能解决你的问题,请参考以下文章

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

在 SFSafariViewController 中提示相机和照片库权限

iOS 照片库读取权限

iview Table根据权限显示对应列

如何在 Cordova 中显示照片库权限对话框?

如何在 iOS5 中重新请求照片访问权限?