Ios 如何从UIDocumentMenuViewController或UIDocumentPickerViewController获取文件源?
我已成功实施了一项功能,允许用户通过Ios 如何从UIDocumentMenuViewController或UIDocumentPickerViewController获取文件源?,ios,swift,uidocumentpickerviewcontroller,uidocumentmenuviewcontroller,Ios,Swift,Uidocumentpickerviewcontroller,Uidocumentmenuviewcontroller,我已成功实施了一项功能,允许用户通过UIDocumentMenuViewController和UIDocumentPickerViewController向我的应用程序拾取文件 但我无法找到如何检测文件的来源。有像文件、谷歌硬盘和DropBox等资源 func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewCo
UIDocumentMenuViewController
和UIDocumentPickerViewController
向我的应用程序拾取文件
但我无法找到如何检测文件的来源。有像文件、谷歌硬盘和DropBox等资源
func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController)
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL)
我已经完成了所有的委托函数,没有看到任何方法。任何帮助都将不胜感激。你好,卡尔文
请添加委派UIDocumentMenuDelegate、UIDocumentPickerDelegate
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
let docurl = url as URL
print("The Url is : \(docurl)")
let urlRequest = NSURLRequest(url: docurl)
do {
let fileAttributes = try FileManager.default.attributesOfItem(atPath: url.path)
let theData = try NSURLConnection.sendSynchronousRequest(urlRequest as URLRequest, returning: nil)
let fileExtension = urlRequest.url?.lastPathComponent
var strFileNAME = ""
if (fileExtension?.contains("pdf"))! {
print("pdf")
} else {
print("doc")
}
var docURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last as NSURL?
docURL = docURL?.appendingPathComponent("\(String(describing: fileExtension))") as NSURL?
try theData.write(to: docURL! as URL)
self.DocumentData = theData
print("downloaded")
}
} catch (let writeError) {
print("error : \(writeError)")
}
let docURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last)
do {
let contents = try (FileManager.default.contentsOfDirectory(at: docURL!, includingPropertiesForKeys: nil, options: FileManager.DirectoryEnumerationOptions.skipsHiddenFiles))
print(contents)
}
catch (let error) {
print("error contents \(error)")
}
}
public func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
documentPicker.delegate = self
present(documentPicker, animated: true, completion: nil)
}
func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
dismiss(animated: true, completion: nil)
}
出于隐私原因,这是不可能的。您不应该知道用户安装了哪些云供应商 另外,请不要使用已弃用的
UIDocumentMenuViewController