UIWebView无法加载在线PDF

时间:2016-02-17 15:27:13

标签: ios pdf uiwebview

我在线存储PDF。我尝试使用UIWebView访问它。 UIActivityViewController将开始旋转,然后在大约5秒后停止,从不在视图中加载任何内容。该文件在12.4MB的网络连接上进行了测试。

- (void)viewWillAppear:(BOOL)animated
{

    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.316apps.com/QMCC/current.pdf"] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0]];
    timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(tick) userInfo:nil repeats:YES];

}
-(void)tick {
    if(!webview.loading)
        [activity stopAnimating];
    else
        [activity startAnimating];

}

1 个答案:

答案 0 :(得分:0)

我在一个(慢速)互联网连接上尝试了这个,它确实在大约62秒内加载。

你可以尝试的事情:

  • 增加请求的超时时间(2分钟,也许您的模拟器或手机连接实际上和我的一样慢)。
  • 只是为了清理一下,不要使用计时器来显示/隐藏活动指示器,请使用UIWebView委托方法,例如webViewDidFinishLoad:

这是我的示例代码:

class ViewController: UIViewController, UIWebViewDelegate {

    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        webView.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.316apps.com/QMCC/current.pdf")!))
    }

    func webViewDidStartLoad(webView: UIWebView) {
        // Show your activity indicator.
        UIApplication.sharedApplication().networkActivityIndicatorVisible = true
    }

    func webViewDidFinishLoad(webView: UIWebView) {
        // Hide your activity indicator.
        UIApplication.sharedApplication().networkActivityIndicatorVisible = false
    }

    func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
        print("FAIL: ", error)
    }
}