Android WebViewClient,当有404时,不会调用onErrorReceived

时间:2011-02-26 00:00:39

标签: android

我有一个WebView,它有一个定义onErrorReceived和onPageFinished的WebViewClient。

正确调用onPageFinished,因此我知道WebViewclient正确附加到WebView。但是,WebView中有一些javascript调用:

location.href="http://kernel.org/asdf/asdf/asdf/asdf";

并且没有调用onErrorReceived侦听器,即使它是404.它是否与javascript调用无关?

编辑:经过一些测试,我发现无论如何都会向此功能报告NO 404。我在这里设置了一个测试项目:http://vimtips.org/media/WebViewTest.zip

看来这种方法不能用于测试404s。有人知道这样做的方法吗?

2 个答案:

答案 0 :(得分:2)

在以下situation中,将调用onErrorReceived。

  • ERROR_AUTHENTICATION服务器上的用户身份验证失败
  • ERROR_BAD_URL格式错误的网址
  • ERROR_CONNECT无法连接到服务器
  • ERROR_FAILED_SSL_HANDSHAKE无法执行SSL握手
  • ERROR_FILE通用文件错误
  • 找不到ERROR_FILE_NOT_FOUND文件
  • ERROR_HOST_LOOKUP服务器或代理主机名查找失败
  • ERROR_IO无法读取或写入服务器
  • ERROR_PROXY_AUTHENTICATION代理
  • 上的用户身份验证失败
  • ERROR_REDIRECT_LOOP重定向过多
  • ERROR_TIMEOUT连接超时
  • ERROR_TOO_MANY_REQUESTS此次加载期间请求过多
  • ERROR_UNKNOWN一般错误
  • ERROR_UNSUPPORTED_AUTH_SCHEME不支持的身份验证方案(非基本或摘要)
  • ERROR_UNSUPPORTED_SCHEME不支持的URI方案

实际上,上面的列表中没有HTTP响应代码。

答案 1 :(得分:1)

无法做到。至少,不是以非黑客的方式。