首页 文章

在 Android ICS 中通过 Web 浏览器下载 PDF 文件

提问于
浏览
2

我需要在移动浏览器中显示 PDF 文档,而不询问用户是否要下载它。使用 Safari(iOs)我可以完美地完成它,但当我尝试使用 Android(版本 ICS)本机浏览器(称为“Internet”)执行相同的操作时,文件被下载,甚至下载似乎也不起作用..下载完成后,文件显示为“下载失败”,我无法使用 PDF 文件阅读器打开它。

相同的链接下载工作正常是所有其他浏览器谁不移动。我认为问题出在我需要添加到响应中的一些头文件中。

我将Content-Type设置为application/pdf,将Content-Disposition设置为inline; filename =“report.PDF”

有没有人有同样的问题?谁知道解决方案? :)

谢谢!

卢卡斯

1 回答

  • 2

    Android 浏览器没有默认的内置 PDF 支持,因此无法轻松完成。

    但是这里有两件事你可以做。

    1. 从 Play 商店下载并安装 adobe reader,然后尝试以下代码

    首先,在设备内存上创建一个文件,然后将 pdf 数据读入其中。 “theurl”是 pdf 所在的网址

    InputStream in = null;
    File dst = new File(Environment.getExternalStorageDirectory()+"/myPDF.pdf");
        try {
            in = theurl.openStream();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }               
        OutputStream out = null;
    try {
        out = new FileOutputStream(dst);
    } catch (FileNotFoundException e) {
    
        // TODO Auto-generated catch block
    }
         // Transfer bytes from in to out
         try {
            byte[] buf = new byte[100000];
            int len;
        while ((len = in.read(buf)) > 0) {
          out.write(buf, 0, len);
         }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
         try {
        in.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
         try {
        out.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
        Intent intent = new Intent();
        Uri path = Uri.fromFile(dst);
        intent.setDataAndType(path, "application/pdf");
        startActivity(intent);
    

    这将下载 pdf,在您的设备内存中创建它,然后意图将通过您的设备上的 adove reader 通过您的应用程序打开它。

    另一种选择是

    1. 转到**http://jaspreetchahal.org/android-how-to-open-pdf-file-within-the-browser/**然后看看那个人是怎么做到

相关问题