2016-03-25 3 views
0

Ich versuche, ein PDF mit Web-Ansicht mit Swift zu laden. Es kann nur eine Seite der PDF-Datei laden, nicht mehr als eine Seite. Was kann ich tun?Das vollständige PDF in Swift WebView kann nicht geladen/geblättert werden.

Import UIKit

Klasse 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") 
} 

}

Antwort

0

ich in das ähnliche Problem gestoßen habe beim Versuch, externe pdf angezeigt wird (nicht denjenigen gebündelt), aber ich nehme an, Sie können denselben Fix verwenden. In Ihrer webViewDidFinishLoad überprüfen Sie, ob die URL tatsächlich eine PDF ist. Weil ich in meinem Fall weiß, was ich erwarte, habe ich einfach dummes Kontrollieren benutzt. Wenn die URL mit einer PDF-Datei verknüpft ist, müssen Sie die Webansicht neu laden, um sie korrekt anzuzeigen und somit scrollen zu können.

Hier ist ein bisschen vereinfachter Code in Ziel C. Es sollte in Swift ziemlich ähnlich sein. Versuchen Sie etwas wie dieses:

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

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