从文档URL加载PDF

时间:2016-02-11 12:10:25

标签: ios swift webview

我是iOS开发人员的新手,所以我为我提出的任何和所有新问题道歉。在Swift中将PDF加载到我的WebView时,我似乎遇到了问题。 打印出Documents文档目录中的所有文件会导致:

文件:///用户/ adriandavidsmith /库/开发商/ CoreSimulator /设备/ B537EBE4-14AE-439A-B84B-31342E233367 /数据/容器/数据/应用/ E791BF20-CC53-4FBB-B34A-F73CED74EB5D /Documents/ST_Business%20Times_07022016.pdf

但是,当我尝试将该文件加载到WebView时,没有显示任何内容。好像无法找到文件一样。

if let pdf = NSBundle.mainBundle().URLForResource("ST_Business%20Times_07022016", withExtension: "pdf", subdirectory: "Documents", localization: nil){

let req = NSURLRequest(URL: pdf)
webView.loadRequest(req)

我确信我错过了一些非常小而令人沮丧的事情!

提前致谢!

4 个答案:

答案 0 :(得分:7)

兼容Swift 3

library(data.table)
d.in <- data.table(
  id=c(rep(1:2,each=4)), 
  time=c(1:4,1:4),
  drugA=c(T,T,F,T, F,F,F,F),
  drugB=c(F,F,F,F, T,F,F,F)
  )
setkey(d.in, id,time)

答案 1 :(得分:1)

您是从捆绑包而不是从文档目录中获取它。

试试这个......

var pdf = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL

pdf = pdf?.URLByAppendingPathComponent( "ST_Business%20Times_07022016.pdf")
let req = NSURLRequest(URL: pdf)
webView.loadRequest(req)

答案 2 :(得分:1)

E791BF20-CC53-4FBB-B34A-F73CED74EB5D 是一个应用程序文件夹,其中包含您要查看的pdf文件的Documents文件夹。

这将给出Documents文件夹的路径。

let fileManager = NSFileManager.defaultManager()
 let documentsUrl = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
print(documentsUrl)

您需要更改代码

let pdf = documentsUrl + "/<your pdf file name>"

let req = NSURLRequest(URL: pdf)
webView.loadRequest(req)

希望这适合你。

答案 3 :(得分:0)

在加载文件之前,请检查路径是否存在有效文件。

    let webView : UIWebView!
    webView = UIWebView()
    webView.frame = self.view.bounds
    self.view.addSubview(webView)
    let PDF_FILE_PATH  = NSBundle.mainBundle().pathForResource("ST_Business%20Times_07022016", ofType: "pdf")
    let checkValidation = NSFileManager.defaultManager()

    if (checkValidation.fileExistsAtPath(PDF_FILE_PATH!))
    {
        print("FILE AVAILABLE");
        let req = NSURLRequest(URL: NSURL(string: PDF_FILE_PATH!)!)
        webView.loadRequest(req)
    }
    else
    {
        print("FILE NOT AVAILABLE");
    }