我想在我的网页视图未正确加载时显示提醒。我已经在连接失败时显示警报,但如果从缓存加载webview,我不想显示该警报。 一个解决方案可能是知道webview是否已从缓存中正确加载,但我不知道该怎么做。 任何的想法?谢谢!
答案 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或缓存加载图像时会触发该事件,因此如果使用某些特殊比例值触发,则表示图像尚未加载。在某些情况下,根据图像大小和比例,这些值并不表示它是否正确加载,但在大多数情况下它确实加载(并选择它始终正确工作的图像比例)。