2013-03-09 94 views
0

我想在webview未正确加载时显示警报。当连接失败时,我已经显示警告,但如果webview是从缓存中加载的,我不想显示该警报。 解决方案可能是知道webview是否已从缓存中正确加载,但我不知道如何做到这一点。 有什么想法?谢谢!检查webview是否正确加载android

回答

1

我发现了一个完整的工作解决方案,适用于所有可能的情况。它基于保存并手动检索缓存数据。如果我有我的webview缓存,我从我保存它的地方加载它。如果没有,我检查互联网连接,并将其保存在我的“自定义”缓存中(位于我的应用程序缓存目录中)。然后,我只显示连接警报,当我没有我的webview“缓存”,我没有互联网连接。

0

我不知道这是否有帮助,但我使用下面的代码来显示一个警告对话框,当我的webview中发现错误。

@Override 
    public void onReceivedError(WebView view, int errorCode, 
      String description, String failingUrl) { 
     AlertDialog.Builder localBuilder2 = new AlertDialog.Builder(Webview_Main.this); 
     localBuilder2.setTitle(R.string.webview_error_received_title); 
     localBuilder2.setMessage(R.string.webview_error_received); 
     localBuilder2.setIcon(R.drawable.ic_launcher); 
     localBuilder2.setPositiveButton("Ok", 
       new DialogInterface.OnClickListener() { 
      public void onClick(
        DialogInterface paramDialogInterface, 
        int paramInt) { 
       finish(); 
      } 
     }); 
     localBuilder2.show(); 
    }; 
+0

问题是,当我没有互联网连接,但我的webview在缓存中,此代码将返回一个警报,但webview将显示正确,我想避免显示该警报...但是谢谢你的建议! – jprog 2013-06-06 10:03:52

0

最后我找到了一个黑客,但我想收到更多可行的解决方案,因为我确信它不是最好的方法。 我使用“onScaleChanged”事件来确定webview是否已加载图像(在我的情况下,我只加载图像)。该事件在从Internet或缓存中加载图像时触发,因此如果它被触发,并且某些特殊比例值为,则表示图像尚未加载。在某些情况下,根据图像的大小和比例,这些值并不表示它是否正确加载,但在大多数情况下,它的确如此(并且选择图像的比例始终正确)。

+0

我会接受其他答案,如果有人能够使其始终工作,而不是在某些情况下,使用或不使用“onScaleChanged”。谢谢! – jprog 2013-06-06 10:41:13