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

标签 android

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

我尝试使用覆盖的 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)
    ....
});

服务器以相同的方式响应来自“我的应用”和内置浏览器的请求。内置浏览器开始下载响应中收到的文件,但我的应用程序没有执行任何操作,也没有在 CustomWebClient 中命中断点。 这是一个单独的应用程序,只是为了测试这件作品,没有其他东西会干扰它。添加了 INTERNET 和 WRITE_EXTERNAL_STORAGE 权限。

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

最佳答案

WebView的这个方法你实现了吗?

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

关于android - 如何在 WebView 中处理二进制数据响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608202/

相关文章:

Android 本地单元测试 - 使用 MockK 模拟 FirebaseAuth

java - android 6.0 文件提供程序在 FileProvider.getUriForFile 上不工作空指针

java - 在 Android 中实现 HTTP 请求超时的最佳方法是什么?

java - 如何在 Android 中使用 SQLite 从微调器中根据选定的月份和年份从列中获取值?

java - Achartengine 无法解析符号 setLineWidth

android - 应用程序崩溃了..找到了有关logcat的解释,但不知道为什么

android - 尝试以编程方式创建嵌套的多重线性布局

android - com.google.firebase.messaging.zza : can't find referenced class android. graphics.drawable.AdaptiveIconDrawable

android - 当 AppTheme 为半透明时,软键盘与 EditTextPreferenceDialogFragmentCompat 重叠

Android web View 中的 Javascript