最近我正在开发一个在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未定义在......
可能是什么问题?
答案 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
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"/>
找到帮助
答案 2 :(得分:0)
确保
你应该安装git并安装文件插件(cordova 3.0 +)
文件和文件传输插件
$ cordova plugin add org.apache.cordova.file
$ cordova plugin add org.apache.cordova.file-transfer
聚苯乙烯。试试插件fileOpener2
答案 3 :(得分:0)
尝试使用以下步骤从URL打开任何类型的文档:
使用此代码:
handleDocumentWithURL(function(){console.log('success');},function(error){console.log('failure'); if(error == 53){console.log('No app that that处理此文件类型。');}},'http://www.example.com/path/to/document.pdf');
它适用于Android和IOS。我用它来打开图像和 PDF 文件。
Android :它会使用系统应用程序打开文件(如果可用),否则会出错,您可以处理。
IOS :它使用完成按钮和选项按钮在弹出窗口中打开文件。
它不会显示您的文档网址。