无法在 swift WebView 中加载/滚动完整的 pdf。

Posted

技术标签:

【中文标题】无法在 swift WebView 中加载/滚动完整的 pdf。【英文标题】:Cannot load/scroll full pdf in swift WebView. 【发布时间】:2016-03-25 07:12:35 【问题描述】:

我正在尝试使用 swift 使用 Web 视图加载 pdf。它只能加载一页pdf,不能向下滚动超过一页。我能做什么?

导入 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")

【问题讨论】:

【参考方案1】:

我在尝试显示外部 pdf(不是捆绑的)时遇到了类似的问题,但我想您可以使用相同的修复方法。

在您的webViewDidFinishLoad 中,检查网址是否实际上是 pdf 网址。因为就我而言,我知道我在期待什么,所以我使用了简单的愚蠢检查。如果 url 链接到 pdf,您需要重新加载 web 视图以正确显示它并因此能够滚动。

这里是 Objective 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;
    

【讨论】:

以上是关于无法在 swift WebView 中加载/滚动完整的 pdf。的主要内容,如果未能解决你的问题,请参考以下文章

在 WebView 中加载 gif 不适应 WebView

无法在 webview 中加载 url

无法在 webview_flutter 中加载相机

无法通过 Javascript 在 WebView 中加载图像

在WebView中加载gif而不是调整到WebView

是否在 webview 中加载图像?