android - Webview下载PDF到手机

标签 android file pdf webview download

目前我正在尝试在我的 Webview 中显示一些“动态”PDF 文件。 这些 PDF 是从数据库加载并“流式传输”浏览器的,这在所有 PC 浏览器甚至 Android 浏览器中都可以正常工作。 我尝试了“content-type: application/pdf”甚至“application/octet-stream”,但两者都给出了相同的结果。

我尝试使用 HttpClient 和 HttpURLConnection 下载 PDF,但我尝试了 getContentLength();和 getInputStream();一直说只有100B。

因此,当我启动 PDF Intent 时,Android 会告诉我它不是正确的 PDF 文件。

仅当我使用 downloadListener 并将 URL 放入 Intent 中(无需先下载)时,Webview 才会打开默认浏览器,并立即自动开始下载。

所以我呈现 PDF 的方式似乎有效。但我尝试从 URL 获取流的方式却没有。

关于这个主题的大量问题,遗憾的是很少有正确/有效的答案......

亲切的问候!

编辑:URL 不是 www.xxx.com/file.pdf,而是 www.xxx.com/file.php?id=12345 因此,当我在移动浏览器中打开 URL 时,浏览器开始下载它,但我的 Web View 中的下载代码似乎只能看到/查找文件。

最佳答案

终于找到解决办法了! 我需要从 WebView 传递身份验证 cookie!

因此添加以下代码解决了我的问题;

String cookie = CookieManager.getInstance().getCookie(url.toString());
if (cookie != null) connection.setRequestProperty("cookie", cookie);

关于android - Webview下载PDF到手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13519997/

相关文章:

c - 反转文件文本

android - 看不懂 Android WebView 文档

android - DataSource.Factory 的创建方法没有得到调用

python - 如何在多处理程序中提取包

node.js - 在 NodeJS 中将缓冲区数据转换为 blob

asp.net - 如何在aspx页面内显示pdf?

java - 尽管设置了属性,但 AppCompat 工具栏标高缺失(使用 RecyclerView)

Android 可扩展 ListView - onClickListener 用于具有持久状态的子项中的按钮

javascript - 使用Ajax、PHP上传PDF文件到MYSQL数据库

python - 如何保存占据PDF文件整页的情节