Phonegap如何在Android应用程序中下载和打开pdf文件

时间:2013-06-24 08:29:19

标签: android cordova

最近我正在开发一个在phonegap中构建的Android应用程序,我对移动开发非常新,这是我第一次使用smt但是,当我尝试将一些文档(pdf,doc,jpg)下载到本地存储时,我感到困惑在通过谷歌搜索后打开它,我试图关注this solution

我按照示例中的确切代码,下面是我如何调用插件:

window.plugins.downloader.downloadFile(url,'/sdcard/download/', 'test.pdf', true, downloadOkCallbak, downloadErCallbak);
    window.plugins.pdfViewer.showPdf('/sdcard/download/test.pdf');

url是我的远程文件,当我执行它时,我收到错误:“TypeError:window.plugins is undefined”。任何帮助表示赞赏。

[更新] 我的showPdf函数代码:

public String showPdf(String fileName) {

    File file = new File(fileName);

    if (file.exists()) {
        try {
            Uri path = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(path, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


            //intent.setData(Uri.parse(fileName));
            this.ctx.startActivity(intent);
            return "";
        } catch (android.content.ActivityNotFoundException e) {
            System.out.println("PdfViewer: Error loading url "+fileName+":"+ e.toString());
            return e.toString();
        }            

    }else{
        return "file not found";
    }

}

[更新2] 我在网络控制台中遇到以下错误:Uncaught ReferrenceError:LocalFileSystem未定义在......

可能是什么问题?

4 个答案:

答案 0 :(得分:13)

我遇到与OP相同的问题,以及许多不成功的方法后来我来到以下解决方案(使用Cordova 3.1.0-3.3.0和三星Galaxy S3和iOS 7测试):

解决方案

首先,按requesting the file system获取文件,然后使用fileTransfer.download()从服务器下载该文件。完成下载后,调用FileOpener(将打开一个弹出窗口,从Adobe Reader等应用程序中进行选择)。注意:确保通过CLI /终端包含FileTransfer功能: cordova插件添加org.apache.cordova.file

  • 导航到您的项目文件夹
  • 打开CLI /终端并输入: cordova plugin add https://github.com/don/FileOpener.git
  • 在您的设备上成功下载并存储文件后(见上文),您可以使用 window.plugins.fileOpener.open("file:///sdcard/Android/data/com.example.application/document.doc") 或iOS上的相应路径打开它。

就是这样!祝你好运!

答案 1 :(得分:0)

确保您在manifest.xml中有这些行:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

您可以在How to download a pdf file in Android?

找到帮助

答案 2 :(得分:0)

确保

你应该安装git并安装文件插件(cordova 3.0 +)

文件和文件传输插件

$ cordova plugin add org.apache.cordova.file $ cordova plugin add org.apache.cordova.file-transfer

聚苯乙烯。试试插件fileOpener2

https://build.phonegap.com/plugins/1117

答案 3 :(得分:0)

尝试使用以下步骤从URL打开任何类型的文档:

它适用于Android和IOS。我用它来打开图像 PDF 文件。

Android :它会使用系统应用程序打开文件(如果可用),否则会出错,您可以处理。

IOS :它使用完成按钮和选项按钮在弹出窗口中打开文件。

它不会显示您的文档网址。

来源可在此处找到:https://github.com/ti8m/DocumentHandler