Мое приложение iOS 11 работает с облачными файлами, используя UIDocumentPickerViewController (в режиме .open
).Как только у меня будет URL, как я могу получить имя места (провайдера файлов), в котором хранится файл?(например, «iCloud», «Dropbox» и т. д.)
Мой лучший выбор был URLResourceValues.ubiquitousItemContainerDisplayName
, но, похоже, он работает только для iCloud.
Вот тестовый код:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard let url = urls.first else { return }
let isAccessible = url.startAccessingSecurityScopedResource()
let res = try! url.promisedItemResourceValues(forKeys: [.ubiquitousItemContainerDisplayNameKey])
print("Container name: \(res.ubiquitousItemContainerDisplayName)")
if isAccessible {
url.stopAccessingSecurityScopedResource()
}
}
Для файлов, выбранных из iCloud, выводится «iCloud Drive».Но для файлов на основе Dropbox имя контейнера nil
.
Я что-то упустил?Есть ли другой способ?