0

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

4

3 回答 3

1

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

于 2013-07-07T09:24:30.497 回答
0

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

于 2013-06-06T10:28:52.533 回答
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();
    };
于 2013-04-16T19:00:11.563 回答