1

我正在制作一个使用 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);

    }
});

另外,我尝试使用谷歌文档查看器,但这也不起作用。它打开我链接的html,它没有打开文件!该网站不会将您定向到 pdf 的链接,它只会让您下载它,这就是 google doc viewer 不起作用的原因。

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

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

4

1 回答 1

0

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

要下载文件,您可以使用DownloadManager-service编写您自己的代码来执行此操作。将文件放在临时位置后,您可以使用上述方法打开它。

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

虽然,我宁愿将文件放在内部缓存中并时不时地擦除它。Android 也会自己做一些整理工作:

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

于 2013-05-07T21:37:18.140 回答