我的活动有一个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。
答案 0 :(得分:1)
您是否实现了WebView的这种方法?
void setDownloadListener(DownloadListener listener) 注册渲染引擎无法处理内容时要使用的接口,应该下载。