【问题标题】:Android webview download and view pdf, xls or doc filesAndroid webview 下载和查看 pdf、xls 或 doc 文件
【发布时间】:2013-04-30 22:29:52
【问题描述】:

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

我有这段代码,但它打开的是安卓浏览器而不是查看 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 的链接,它只会让您下载它,这就是为什么 google doc viewer 不起作用的原因。

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

欢迎任何想法。感谢您的宝贵时间!

【问题讨论】:

    标签: android pdf android-webview


    【解决方案1】:

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

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

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

    虽然,我宁愿将文件放在internal cache 中并不时擦除它。 Android 也会自己做一些小事:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-19
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      相关资源
      最近更新 更多