无法将图像保存到Egnyte/Google Drive/Dropbox - Swift/Xcode

lsmd5eda  于 2023-01-08  发布在  Swift
关注(0)|答案(2)|浏览(141)
    • 更新**

我尝试了下面的代码解决方案,它允许我现在保存到谷歌驱动器,但Egnyte和Dropbox仍然是灰色的。

func exportPhotosToFileLocation() {
        var fileURLArray = [URL]()
        
        for data in reviewDataController.tableViewReviewData {
            guard let imageData = data.image.jpegData(compressionQuality: 1.00) else {
                print("ERROR: Unable to print convert image to jpegData in exportPhotosToFileLocation!")
                return
            }
            
            let fileManager = FileManager.default
            
            do {
                let fileURL = fileManager.temporaryDirectory.appendingPathComponent("\(data.imageTitle)").appendingPathExtension("jpeg")
                try imageData.write(to: fileURL)
                fileURLArray.append(fileURL)
                print("Successfully created file from jpegData in exportPhotosToFileLocation!")
            } catch {
                print("ERROR: Unable to create file from jpegData in exportPhotosToFileLocation!")
                return
            }
        }
        
        if #available(iOS 14, *) {
            let controller = UIDocumentPickerViewController(forExporting: fileURLArray)
            present(controller, animated: true)
        }
        else {
            let controller = UIDocumentPickerViewController(urls: fileURLArray, in: .exportToService)
            present(controller, animated: true)
        }
        
    }

以下是Egnyte的开发人员文档。不幸的是,对于我这个初学者来说,这些文档都没有意义。
Egnyte Developer Documentation

-————————————————————————————————————————————————————————————————————————————————————————————-

    • 原职位**

在我的应用程序中,我尝试允许用户选择保存位置(所以选择一个文件夹)。每当我使用这段代码时,Egnyte/Google Drive/Dropbox都是"灰色"的,无法访问

let supportedTypes : [UTType] = [UTType.folder]
let documentPickerController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes)
documentPickerController.delegate = self
self.present(documentPickerController, animated: true, completion: nil)

如果将supportedTypes更改为

let supportedTypes : [UTType] = [UTType.text]

它***确实***让我访问它们。有人有解决这个问题的办法吗?我显然需要用户能够在这些应用程序中选择一个文件夹...你可以看到为什么这很重要。

evrscar2

evrscar21#

这取决于文件提供程序扩展(Google Drive等)。要允许选择文件夹,文件提供程序必须以分层方式将内容放置在其目录中...如果他们这样做,他们需要在其Info.plist中指定NSExtensionFileProviderSupportsPickingFolders,以告诉系统允许选择文件夹。
是否需要选择保存位置并将其保存?如果需要,则在实现必要API的文件提供程序上将阻止您。如果不需要,则传递的类型应为实际保存的文档类型。文档将在所选文件夹中保存一次(对文件提供程序扩展没有任何附加要求),并且您将不得不再次使用文档选取器来保存下一个文档。

0aydgbwb

0aydgbwb2#

如果您试图在苹果文件导入程序中选择Dropbox作为导入文件的位置,但它没有前进到文件选择屏幕,我发现重新启动我的iPhone似乎解决了这个问题。

相关问题