我正在制作一个使用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下载管理器,但是如何下载文件,打开它,当用户关闭它时删除该文件?因为我只想下载临时时间。
欢迎任何想法。谢谢你的时间!
答案 0 :(得分:0)
您必须先下载这些文件,以便Android可以找到合适的应用程序来打开它们,因为Uri.parse(url)
会为您提供一个网站地址,通常会分配给浏览器(因此会打开)在它)。
要下载文件,您可以使用DownloadManager
-service或write your own code来执行此操作。将文件放在临时位置后,可以使用上述方法打开它。
如果您想在用户查看文件后删除该文件,可以在您的活动onResume()
- 方法中执行此操作,该方法将在用户从查看文件导航回来时调用(使用回按钮)。
虽然,我宁愿把文件放在internal cache中,然后不时擦拭它。 Android也会自己做一些家务:
当设备内部存储空间不足时,Android可能会删除这些缓存文件以恢复空间。但是,您不应该依赖 在系统上清理这些文件给你。你应该永远 自己维护缓存文件并保持在合理的限制范围内 消耗的空间,例如1MB。 当用户卸载您的 应用程序,这些文件将被删除。