如何在WebView中处理二进制数据响应

时间:2012-03-07 19:59:30

标签: android

我的活动有一个intent过滤器,用于获取特定URL并在WebView控件中打开它,该控件将用户带到auth页面(用户名/密码)。身份验证完成后,用户将获得二进制流响应(文件)。有没有办法处理该响应并从流中读取数据?

我尝试使用重写的shouldOverrideUrlLoading方法设置自定义WebViewClient,但应用程序无法到达。

@Override 
mMyWebView.setWebViewClient(new CustomWebClient());
mMyWebView.loadUrl("http://xxx.xx.x.xx:xxxx/getCert");

...
private class CustomWebClient extends WebViewClient
{
    @Override
    public boolean shouldOverrideUrlLoading  (WebView  view, String  urlConection)
    {
       // break point here doesn't stop debugger
       return true;
    }
}

既不起作用

mMyWebView.setWebViewClient(new WebViewClient(){

    @Override
    public boolean shouldOverrideUrlLoading  (WebView  view, String  urlConection)
    ....
});

服务器以相同的方式对来自My app和内置浏览器的请求作出反应。内置浏览器开始下载响应中收到的文件,但我的应用程序没有做任何事情,也没有在CustomWebClient中命中断点。 这是一个单独的应用程序,只是为了测试这件作品没有其他任何干扰它。互联网&添加了WRITE_EXTERNAL_STORAGE权限。

编辑:3月8日 放弃。将使用httpClient。

1 个答案:

答案 0 :(得分:1)

您是否实现了WebView的这种方法?

void setDownloadListener(DownloadListener listener) 注册渲染引擎无法处理内容时要使用的接口,应该下载。