2016-02-11 3 views
2

Я довольно новичок в iOS-разработчике, поэтому прошу прощения за любые и все новые вопросы, которые я задаю. Кажется, у меня возникают проблемы при загрузке PDF в мой WebView в Swift. печати всех файлов в результатах каталога документов в:Загрузка PDF из документов URL

файл: /// Users/adriandavidsmith/Library/Developer/CoreSimulator/Devices/B537EBE4-14AE-439A-B84B-31342E233367/данные/Контейнеры/Data /Application/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) 

Я уверен, что мне не хватает чего-то чрезвычайно маленького и расстраивающего!

Заранее благодарен!

+1

Документ хранится в директории Documents Application, а не в пачке приложений. http://stackoverflow.com/questions/14937846/how-to-get-url-path-for-directory-inside-document-directory – aViNaSh

ответ

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"); 
    } 
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) 
1

E791BF20-CC53-4FBB-B34A-F73CED74EB5D папка приложения, в котором у вас есть папка документов, содержащих файл в формате PDF, который вы хотите просмотреть.

Это даст путь к папке «Документы».

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

Swift 3 совместимый

 var pdfURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last! as URL 
     pdfURL = pdfURL.appendingPathComponent("example.pdf") as URL 

     let data = try! Data(contentsOf: pdfURL) 
     let webView = WKWebView(frame: CGRect(x:20,y:20,width:view.frame.size.width-40, height:view.frame.size.height-40)) 
     webView.load(data, mimeType: "application/pdf", characterEncodingName:"", baseURL: pdfURL.deletingLastPathComponent()) 
     view.addSubview(webView) 
+0

Спасибо. Просто. Спасибо. Я люблю тебя. –