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

3

我正在尝试使用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)
        }
    }

// 这段代码位于pdfViewController中 // 网站链接 = 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个回答

3

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

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

我不确定为什么您要将webView子视图添加到视图中。这应该在其他地方完成吗?难道您不应该使用webView推送控制器吗?

成功了。这就是我想要的。忽略子视图中的webView。我拼命尝试找出任何可能的问题,只是想看看是否是它导致了问题。现在我已经将其删除了。 - user1828605

3

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

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

 webView.loadRequest(request)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接