检查webview是否正确加载android

时间:2013-03-09 10:47:53

标签: android caching webview

我想在我的网页视图未正确加载时显示提醒。我已经在连接失败时显示警报,但如果从缓存加载webview,我不想显示该警报。 一个解决方案可能是知道webview是否已从缓存中正确加载,但我不知道该怎么做。 任何的想法?谢谢!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我不知道这是否有帮助,但是当我的网页浏览中发现错误时,我会使用以下代码显示警告对话框。

@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();
    };

答案 2 :(得分:0)

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