目前,我正在尝试在Webview中显示一些“动态” PDF文件。
这些PDF是从数据库中加载并“流化”浏览器的,在所有PC浏览器甚至Android浏览器中都可以正常工作。
我尝试了“内容类型: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中的下载代码似乎只能查看/查找文件。
最佳答案
我终于找到了解决方案!
我需要从WebView通过身份验证cookie!
因此,添加以下代码解决了我的问题;
String cookie = CookieManager.getInstance().getCookie(url.toString());
if (cookie != null) connection.setRequestProperty("cookie", cookie);