我的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
。
我想念什么吗?还有另一种方法吗?
答案 0 :(得分:0)
这是不可能的。 Apple不允许您获取此信息来保护用户的隐私。