2

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

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

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

只有当我使用 downloadListener 并将 URL 放入意图中(没有先下载)时,Webview 才会打开默认浏览器,它会立即自动开始下载。

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

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

亲切问候!

编辑: URL 不是 www.xxx.com/file.pdf,而是 www.xxx.com/file.php?id=12345 所以当我在移动浏览器中打开 URL 时,浏览器开始下载它,但是下载我的 Webview 中的代码似乎可以看到/找到一个文件。

4

1 回答 1

3

我终于找到了解决方案!我需要通过 WebView 的身份验证 cookie!

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

String cookie = CookieManager.getInstance().getCookie(url.toString());
if (cookie != null) connection.setRequestProperty("cookie", cookie);
于 2012-11-23T14:03:37.097 回答