最近我正在开发一个
android应用程序内置的phonegap,我是一个很新的移动开发,这我smy第一个应用程序但是,当我尝试将一些文件(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”.任何帮助表示赞赏.
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]我在Web控制台中遇到以下错误:Uncaught ReferrenceError:LocalFileSystem未在…中定义
可能是什么问题?
解决方法
我遇到了与OP相同的问题和许多不成功的方法后来我得到了以下解决方案(使用Cordova 3.1.0-3.3.0和三星Galaxy S3和iOS 7测试):
解
首先,通过requesting the file system获取文件,然后使用fileTransfer.download()从服务器下载.完成下载调用后,FileOpener(将打开一个弹出窗口,从Adobe Reader等应用程序中进行选择).注意:确保通过CLI / Terminal包含FileTransfer功能:cordova plugin add 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上的适当路径.
而已!祝好运!