iOS 11: Как получить имя местоположения (File Provider) для облачного файла? - PullRequest
0 голосов
/ 21 сентября 2018

Мое приложение 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.

Я что-то упустил?Есть ли другой способ?

1 Ответ

0 голосов
/ 18 октября 2018

Это невозможно.Apple не позволяет вам получать эту информацию для защиты конфиденциальности пользователя.

...