目前我正在尝试在Webview中显示一些“动态”PDF文件。 这些PDF是从数据库加载并“浏览”到浏览器,这在所有PC浏览器甚至Android浏览器中都能正常工作。 我尝试了“content-type:application / pdf”甚至“application / octet-stream”,但两者都给出了相同的结果。
我尝试使用HttpClient和HttpURLConnection下载PDF,但我尝试了getContentLength();和getInputStream();继续说它只有100B。
因此,当我启动PDF意图时,Android告诉我它不是一个正确的PDF文件。
只有当我使用downloadListener并将URL放入intent(不先下载)时,Webview才会打开默认浏览器,立即自动开始下载。
所以我呈现PDF的方式似乎有效。但是我尝试从URL获取流的方式却没有。
关于这个主题的大量问题,遗憾的是,很少有正确/有效的答案......
Kinds问候!
编辑:网址不是www.xxx.com/file.pdf,但它是www.xxx.com/file.php?id=12345 因此,当我在移动浏览器中打开URL时,浏览器开始下载它,但是我的Webview中的下载代码似乎可以看到/找到一个文件。
答案 0 :(得分:2)
我终于找到了解决方案! 我需要通过WebView的身份验证cookie!所以添加以下代码修复了我的问题;
String cookie = CookieManager.getInstance().getCookie(url.toString());
if (cookie != null) connection.setRequestProperty("cookie", cookie);