java - WebView - 如果不请求两次就无法下载文件?

标签 java android webview webviewclient

如果我使用 DownloadListener 收听,我会得到我需要请求的 URL,在浏览器已经请求它之后。浏览器已经打开了到 URL 的连接(这是它知道这是一个下载的方式),为什么它不能将连接传递给我?

我还尝试将自定义 WebViewClient 分配给 WebView 并使用 shouldOverrideUrlLoading 在请求之前捕获 URL。要以这种方式下载文件,我在浏览器之前请求每个 URL,并根据它的 Content-Type 决定是否下载它,如果是,那么我从已经打开的连接中下载它,否则我关闭连接并指示浏览器加载它,然后浏览器...再次请求它。另外,在 shouldOverrideUrlLoading 中,我没有被告知应该使用哪种方法和哪些 cookie 来请求给定的 URL。

我怎样才能不必要地请求两次并且仍然能够使用 WebView 下载文件?

最佳答案

一个简单的解决方案是将其修改为只下载它而不要求用户根据内容类型进行确认,而只是在用于监视下载的任何内容上放置一个取消按钮。

关于java - WebView - 如果不请求两次就无法下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801787/

相关文章:

android - 在 Material 设计中设置弹出菜单

android - 如何证明 Android Studio 中的内容 - XML

javascript - 在 web View 中填充 window.showModalDialog

android - Cordova 表单不提交或按钮不工作 (android +4.4)

java - JPA/hibernate : Update Parent column value before inserting child column value

java - Android/Java 为特定类找到正确的库

java - OutOfMemoryError - 为什么等待线程不能被垃圾回收?

android - Room 数据库迁移测试中出现 "no such table: alarmInfo"的原因是什么?

android - LeakCanary 发现 Android WebView 内存泄漏

java - 带输入的 PowerMockito mockStatic