Android webview下载并查看pdf,xls或doc文件

时间:2013-05-07 04:13:16

标签: android pdf android-webview

我正在制作一个使用webview浏览特定网站的Android应用程序。问题是我希望用户能够查看网站中的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下载管理器,但是如何下载文件,打开它,当用户关闭它时删除该文件?因为我只想下载临时时间。

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

1 个答案:

答案 0 :(得分:0)

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

要下载文件,您可以使用DownloadManager-servicewrite your own code来执行此操作。将文件放在临时位置后,可以使用上述方法打开它。

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

虽然,我宁愿把文件放在internal cache中,然后不时擦拭它。 Android也会自己做一些家务:

  

当设备内部存储空间不足时,Android可能会删除这些缓存文件以恢复空间。但是,您不应该依赖   在系统上清理这些文件给你。你应该永远   自己维护缓存文件并保持在合理的限制范围内   消耗的空间,例如1MB。 当用户卸载您的   应用程序,这些文件将被删除。