我试图在swift3中选择pdf文档,但无法选择pdf文档。请检查我的代码。
final LinearLayout dbContainer = findViewById(R.id.dbLayout);
if (dbContainer.getChildCount() > 0) {
dbContainer.removeAllViews();
}
// add the views here
答案 0 :(得分:0)
您可以使用以下方法:
class ViewController: UIViewController,UIDocumentMenuDelegate,UIDocumentPickerDelegate,UINavigationControllerDelegate {
@IBAction func clickAction(_ sender: Any) {
self.p_documentclicked()
}
fileprivate func p_documentclicked() {
let importMenu = UIDocumentMenuViewController(documentTypes: ["public.text", "public.data","public.pdf", "public.doc"], in: .import)
importMenu.delegate = self
self.present(importMenu, animated: true, completion: nil)
}
internal func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
documentPicker.delegate = self
self.present(documentPicker, animated: true, completion: nil)
}
func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
print("we cancelled")
}
internal func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
let cico = url as URL
print(cico)
self.load(URL: cico as NSURL)
}
fileprivate func load(URL: NSURL) {
let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
var request = URLRequest(url: URL as URL)
request.httpMethod = "GET"
let task = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error == nil) {
// Success
let statusCode = response?.mimeType
print("Success: \(String(describing: statusCode))")
DispatchQueue.main.async(execute: {
self.p_uploadDocument(data!, filename: URL.lastPathComponent!)
})
// This is your file-variable:
// data
}
else {
// Failure
print("Failure: %@", error!.localizedDescription)
}
})
task.resume()
}
}