2016-11-30 77 views
0

我遇到下载pdf的问题,保存到文档目录并将其加载到Web视图中。 我没有经验下载东西,保存东西到目录和UIWebView之前。下载PDF,保存到文档目录并将其加载到UIWebView中

在我问这个问题之前,我已经搜索了多个StackOverflow问题并尽力而为,但仍然无法正常工作。

首先这是我如何下载从URL中的PDF并将其保存到文档目录

let myURL = URL(string: "https://example/example/product.pdf") 
let urlRequest = NSURLRequest(url: myURL!) 

do { 
    let theData = try NSURLConnection.sendSynchronousRequest(urlRequest as URLRequest, returning: nil) 
    var docURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last as? NSURL 
    docURL = docURL?.appendingPathComponent("my.pdf") as NSURL? 
    try theData.write(to: docURL as! URL) 
    print("downloaded") 
} catch (let writeError) { 
    print("error : \(writeError)") 
} 

了一段时间,并打印应用程序暂停“已下载”

我这是怎么检查我的文档目录中的联系人列表

let docURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last) 
     do{ 
      let contents = try (FileManager.default.contentsOfDirectory(at: docURL!, includingPropertiesForKeys: nil, options: FileManager.DirectoryEnumerationOptions.skipsHiddenFiles)) 
      print("There are") 
      print(contents) 
     } 
     catch (let error) 
     { 
      print("error contents \(error)") 
     } 

它p rints “有[文件:///private/var/mobile/Containers/Data/Application/DF6A310C-EB7E-405E-9B1B-654486B5D03A/Documents/my.pdf]”

我这是怎么加载pdf into webView

​​

WebView出现,但什么也没有显示。如果my.pdf真的以可读的PDF格式保存,我真的很困惑。

我不知道是否有一些东西,我必须添加一些东西在info.plist或启用应用程序功能的东西。非常感谢你。

+0

除了你的问题'NSURLConnection'不赞成使用'NSURLSession'现在 – Rajat

+0

喜@thura OO如果可能的话,我请你给你的工作的代码作为一个答案,这样有人可以得到帮助或从中学习。在我的情况下,我与你的情况相同,但无法弄清楚如何一步一步做到这一点。请帮助我的代码。提前感谢。 – deltami

回答

1

我没有通过所有的代码,但下面两行看起来是一个问题:

var filePath = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("my.pdf").absoluteString 
var targetURL = URL(fileURLWithPath: filePath) 

URL absoluteString值不给你一个文件路径,这样的filePath值不是一个有效的URL fileURLWithPath:初始值设定项的值。

URLString(作为路径)并返回URL有什么意义?简单地将这两条线结合为:

var targetURL = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("my.pdf") 

作为一个附注,使用一些一致性。在其他代码你使用的文档文件夹网址:

let docURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last) 

和其他代码使用:

var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
var documentsDirectory = paths[0] 
var ... = URL(fileURLWithPath: documentsDirectory)... 

选择一个方法,并坚持使用它。由于您需要URL,请使用第一种方法。这意味着我建议现在的代码应该是:

let docURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last! 
let targetURL = docURL.appendingPathComponent("my.pdf") 
+0

这些代码行对我来说是新的,我真的搞砸了。我按你所说的做了,现在起作用了。非常感谢你。 –

+0

嗨@rmaddy你可以指导我一步一步1)如何创建目录2)如何从新创建的目录中的URL保存pdf文件3)如何从该目录共享该pdf文件4)共享完成后如何删除该目录。请帮助我。如果你想我问一个问题,也可以这样做。 – deltami

相关问题