2013-05-07 126 views
1

我正在制作一个使用webview浏览特定网站的android应用程序。问题是我希望用户能够查看网站中的pdf,.xls或.doc文档。Android webview下载并查看pdf,xls或doc文件

我有这个代码,但它打开Android浏览器,而不是查看PDF文件。

webView.setDownloadListener(new DownloadListener() { 
    public void onDownloadStart(String url, String userAgent, 
      String contentDisposition, String mimetype, long contentLength) { 
     Uri uri = Uri.parse(url); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     startActivity(intent); 

    } 
}); 

此外,我尝试使用google docs viewer,但这也不起作用。它打开我的链接的HTML,它不打开文件!该网站并没有引导你到PDF的链接,它只允许你下载它,这就是为什么谷歌文档查看器不起作用。

我想打开像android浏览器的文件。它下载文件,然后打开它。我怎样才能做到这一点?我以为使用android下载管理器,但我如何下载文件,打开它,当用户关闭它删除该文件?因为我只想下载暂时的时间。

欢迎任何想法。谢谢你的时间!

回答

0

您必须先下载文件,以便Android可以找到合适的应用程序来打开它们,因为Uri.parse(url)会为您提供网站地址,该地址通常分配给浏览器(因此将在浏览器中打开) 。

要下载文件,您可以使用DownloadManager-servicewrite your own code这样做。将文件放在临时位置后,可以使用上述方法打开文件。

如果您想在用户查看文件后删除文件,一个想法是在您的活动onResume()-方法中执行此操作,当用户从查看文件导航回来时(将使用后退按钮)。

虽然,我宁愿将文件放在internal cache中,然后每隔一段时间擦除一次。 Android将做一点看家本身,也:

当设备处于低内部存储空间,Android的可以删除这些缓存文件来恢复空间。但是,您不应该依赖系统上的 来为您清理这些文件。您应该始终保持自己的缓存文件,并保持在空间消耗的合理限制 (如1MB)内。 当用户卸载您的 应用程序时,这些文件将被删除。