- 更新**
我尝试了下面的代码解决方案,它允许我现在保存到谷歌驱动器,但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]
它***确实***让我访问它们。有人有解决这个问题的办法吗?我显然需要用户能够在这些应用程序中选择一个文件夹...你可以看到为什么这很重要。
2条答案
按热度按时间evrscar21#
这取决于文件提供程序扩展(Google Drive等)。要允许选择文件夹,文件提供程序必须以分层方式将内容放置在其目录中...如果他们这样做,他们需要在其Info.plist中指定NSExtensionFileProviderSupportsPickingFolders,以告诉系统允许选择文件夹。
是否需要选择保存位置并将其保存?如果需要,则在实现必要API的文件提供程序上将阻止您。如果不需要,则传递的类型应为实际保存的文档类型。文档将在所选文件夹中保存一次(对文件提供程序扩展没有任何附加要求),并且您将不得不再次使用文档选取器来保存下一个文档。
0aydgbwb2#
如果您试图在苹果文件导入程序中选择Dropbox作为导入文件的位置,但它没有前进到文件选择屏幕,我发现重新启动我的iPhone似乎解决了这个问题。