该问题涉及使用“复制到...”与我的应用程序共享文档。
该行动的结果是呼吁:
//TODO: This is where we save to the documents folder I beleive.
func application(_ app: UIApplication, open inputURL: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
// Ensure the URL is a file URL
guard inputURL.isFileURL else { return false }
print(#function)
// Reveal / import the document at the URL
guard let documentBrowserViewController = window?.rootViewController as? DocumentBrowserViewController else {
print("DocumentBrowserViewController needs to be RootViewController")
return false
}
documentBrowserViewController.revealDocument(at: inputURL, importIfNeeded: true) { (revealedDocumentURL, error) in
//TODO: Handle error with alert
if let error = error {
print("Error: Failed to reveal the document at URL \(inputURL) with error: '\(error)'")
} else {
print("Success.")
}
// Present the Document View Controller for the revealed URL
//documentBrowserViewController.presentDocument(at: revealedDocumentURL!)
}
return true
}
打印语句显示块:documentBrowserViewController.revealDocument
被执行而没有错误。
根据文档:
如果 importIfNeeded 为真,则文档浏览器在调用完成处理程序之前调用其委托的 documentBrowser( :didImportDocumentAt:toDestinationURL:) 方法(或它的 documentBrowser( :failedToImportDocumentAt:error:) 方法,如果发生错误)。
不过,这两种方法都没有被调用。
笔记:
- 我已将documentBrowserViewController设置为它自己的委托。
- 我并不孤单。苹果论坛。
我误解了 API 吗?我的目标是在使用(“复制到”)从外部应用程序导入文件时将文件保存到用户文档中。我的计划是这样做:
documentBrowser(_:didImportDocumentAt:toDestinationURL:)