代码之家  ›  专栏  ›  技术社区  ›  user1828605

如何使用Swift在UIWebView上显示远程位置的PDF文件?

  •  3
  • user1828605  · 技术社区  · 8 年前

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            print("preparing segue")
            if segue.identifier == "PdfWebView" {
    
                print("Found segue")
    
                let detailViewController = segue.destinationViewController as! PdfViewController
    
                let myIndexPath = self.tableView.indexPathForSelectedRow!
    
                let row = myIndexPath.row
    
    
                //Pass selected cell title to next View
                detailViewController.website = pdfLinks[row]
    
                print("Website: ", detailViewController.website)
            }
        }
    

    // This is on pdfViewController // The webiste = http://www.example.com/some-pdf-document-to-display.pdf

    if let website = website {
        print("Getting pdf: ",website)
    
        if let pdf = NSBundle.mainBundle().URLForResource(website, withExtension: "pdf", subdirectory: nil, localization: nil){
    
            print(pdf)   // <-- this is always nil
            let req = NSURLRequest(URL: pdf)
    
            webView.loadRequest(req)
            self.view.addSubview(webView)
    
        }
    
    
    }
    

    我做错了什么?不用说,这是我开发的第一个应用程序。

    2 回复  |  直到 8 年前
        1
  •  3
  •   GregP    8 年前

    如果文件不在应用程序中,则不应使用NSBundle。

    let pdfUrl = NSURL(string: website)
    let req = NSURLRequest(URL: pdfUrl)
    

        2
  •  3
  •   Abhijit    8 年前

    文件不在捆绑包中。相反,您可以直接加载URL。

     let website = "http://www.sanface.com/pdf/test.pdf"
     let reqURL =  NSURL(string: website)
     let request = NSURLRequest(URL: reqURL!)
    
     webView.loadRequest(request)