2013-05-07 185 views
1

这段代码创建一个无限循环,当我尝试显示PDF文件时,我该如何避免这种情况?无限循环inOverrideUrlLoading

谢谢。

mWebview.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      String hello = Uri.parse(url).getHost(); 
      if (url.endsWith(".pdf")){ 
       System.out.println("pdf: " + url); 
       view.loadUrl("http://docs.google.com/gview?embedded=true&url=" + url); 
       return true; 
      } else { 
       System.out.println("no pdf: " + url); 
       view.loadUrl(url); 

      } 
      return false; 
      } 
     }); 
+0

不要在这个方法中调用webview.loadurl – 2013-05-07 12:56:45

+0

但是我怎样才能显示PDF文件? – luisfer 2013-05-07 13:06:45

+0

webviewclient不负责加载它们,只有在webview应该响应负载调用时才委派。这就是为什么你要首先覆盖布尔方法的原因。在您的活动中调用loadurl。 – 2013-05-07 13:25:06

回答

2

else应该是:将出现

} else { 
    System.out.println("no pdf: " + url); 
} 

你的循环,因为每次他会做一个loadUrl-> shouldOverrideUrlLoading -> loadUrl

如果不更改URL,就返回false。

+0

我已经尝试过,仍然无法正常工作。 – luisfer 2013-05-07 13:06:15

+0

你确定只调用过一次setWebViewClient吗? – RvdK 2013-05-07 13:25:20