2016-03-25 5 views
0

Я пытаюсь загрузить pdf, используя веб-представление, используя swift. Он может загружать только одну страницу pdf, не может прокручивать более одной страницы. Что я могу сделать?Невозможно загрузить/прокрутить полный pdf-файл в swift WebView.

импорт UIKit

класс ViewController: UIViewController, UIWebViewDelegate {

@IBOutlet var webViews: UIWebView! 

var path = "" 

override func viewDidLoad() { 
    super.viewDidLoad() 

    path = NSBundle.mainBundle().pathForResource("ibook", ofType: "pdf")! 
    let url = NSURL.fileURLWithPath(path) 

    /*webViews.scalesPageToFit = true 
    webViews.scrollView.scrollEnabled = true 
    webViews.userInteractionEnabled = true*/ 

    webViews.delegate = self 

    self.webViews.loadRequest(NSURLRequest(URL: url! 
     )) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

} 


func webViewDidStartLoad(webView : UIWebView) { 
    //UIApplication.sharedApplication().networkActivityIndicatorVisible = true 
    println("webViewDidStartLoad") 
} 

func webViewDidFinishLoad(webView : UIWebView) { 
    //UIApplication.sharedApplication().networkActivityIndicatorVisible = [enter image description here][1]false 
    webViews.scalesPageToFit = true 
    webViews.scrollView.scrollEnabled = true 
    webViews.userInteractionEnabled = true 
    println("webViewDidFinishLoad") 
} 

}

ответ

0

Я столкнулся с подобной проблемой при попытке отобразить внешний PDF (не в комплекте один), но я полагаю, вы можете использовать одно и то же исправление.

В вашем webViewDidFinishLoad проверьте, действительно ли URL-адрес является pdf-файлом. Потому что в моем случае я знаю, чего я ожидаю, я использовал простой тупой контроль. Если url ссылается на pdf, вам необходимо перезагрузить веб-представление, чтобы показать его правильно и, следовательно, иметь возможность прокрутки.

Вот немного упрощенный код в объективе C. Он должен быть очень похож на Swift. Попробуйте что-то вроде этого:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    static BOOL isPdfReloaded = NO; 

    if (!isPdfReloaded && [webView.request.URL.absoluteString containsString:@".pdf"]) 
    { 
     [webView reload]; 
     isPdfReloaded = YES; 
    } 
    else 
    { 
     isPdfReloaded = NO; 
    } 
}