iOS 11:如何获取基于云的文件的位置(文件提供者)名称?

时间:2018-09-20 21:03:32

标签: ios swift dropbox icloud uidocument

我的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 :(得分:0)

这是不可能的。 Apple不允许您获取此信息来保护用户的隐私。