open PDF URL in iOS 8?

2019-09-10 21:29发布

问题:

I have write this code to show pdf using UIDocumentInteractionController.But,I don't know how to search pdf at local directory and open in iOS 8 and below..Any help?

let filename = history.invoiceLongDate // 01223642
            if !filename.isEmpty{
                let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
                let docs = paths[0]
                let pathURL = NSURL(fileURLWithPath: docs, isDirectory: true)
                if #available(iOS 9.0, *) {
                    let fileURL = NSURL(fileURLWithPath: "\(filename)_my_invoice.pdf", isDirectory: false, relativeToURL: pathURL)
                    self.docController = UIDocumentInteractionController(URL: fileURL)
                    self.docController?.delegate = self
                    self.docController?.presentOptionsMenuFromRect(sender.frame, inView: self.view, animated: true)
                } else {
                    // Fallback on earlier versions
                    // Any Help with that?
                }
            }

回答1:

You can view PDF in iOS 8 by using webview. Try below code,

if let pdf = NSBundle.mainBundle().URLForResource("myPDF", withExtension: "pdf", subdirectory: nil, localization: nil)  {
        let req = NSURLRequest(URL: pdf)
        let webView = UIWebView(frame: CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height))
        webView.loadRequest(req)
        self.view.addSubview(webView)
    }

OR

if let baseUrl = NSURL.fileURLWithPath(pathURL) {
let fileURL = baseUrl.URLByAppendingPathComponent(NFConstants.NFCoreDataStringIdentifiers.CoreDataStoresPathComponent.rawValue)
}

Hope this will be helpful to you.



回答2:

UIDocumentInteractionController is available with (iOS 3.2, *).

For Viewing PDF file:

var documentInteractionController: UIDocumentInteractionController!

@IBAction func openDocument(sender: UIButton) {
  let URL: NSURL = NSBundle.mainBundle().URLForResource("pdf-sample", withExtension: "pdf")!

    if (URL != "") {
        // Initialize Document Interaction Controller
        self.documentInteractionController = UIDocumentInteractionController(URL: URL)

        // Configure Document Interaction Controller
        self.documentInteractionController.delegate = self

        // Present Open In Menu
        self.documentInteractionController.presentOptionsMenuFromRect(sender.frame, inView: self.view, animated: true)
            //presentOpenInMenuFromRect(button.frame, inView: self.view, animated: true)
    }
}

// MARK: UIDocumentInteractionControllerDelegate
func documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController) -> UIViewController {
    return self
}