在swift3中选择PDF文档

时间:2017-10-28 05:19:34

标签: pdf swift3

我试图在swift3中选择pdf文档,但无法选择pdf文档。请检查我的代码。

final LinearLayout dbContainer = findViewById(R.id.dbLayout);

if (dbContainer.getChildCount() > 0) {
    dbContainer.removeAllViews();
}

// add the views here

1 个答案:

答案 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()
        }
}