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

时间:2016-09-02 16:21:26

标签: ios swift uiwebview

我正在尝试使用位于我们网站上的iOS应用程序显示pdf文件。这就是我这样做的方式:

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 个答案:

答案 0 :(得分:3)

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

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

我也不确定您为什么要将webView子视图添加到视图中。不应该在其他地方做吗?你不应该用webview推动一个控制器吗?

答案 1 :(得分:2)

文件不在你的Bundle中。相反,您可以直接加载网址。

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

 webView.loadRequest(request)