欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

phonegap-文件下载-打开阅读开发【andriod】

Android开发 夜阑小雨 2669℃ 0评论

phonegap 提供了文件下载api接口。

  1. DirectoryEntry
  2. FileEntry
  3. FileSystem
  4. FileTransfer

但是没有提供阅读文档的插件,还好phonegap可以提供插件支持

我这里提供一个插件的下载,可以打开各种文档,doc,txt,图片,pdf等等。

以前的插件有版本太低,方法上有了问题,这里我是新修改过的。

下载:文件查看插件

插件的使用方法:

1.拷贝FileOpener.java到你的项目中

2.在插件文件里添加插件引用:

<plugin name="FileOpener" value="com.phonegap.plugins.fileopener.FileOpener"/>

3.拷贝fileopener.js到你的www文件下在你的html页面你们引入js文件。

<script type=”text/javascript” charset=”utf-8″ src=”fileopener.js”></script>

 

下来我们来写下载代码:

在html页面你们添加:

 

<ul id=”pdf”>

<li><span><strong>文件</strong></span><span><strong>状态</strong></span><span><strong>查看</strong></span><span><strong>删除</strong></span></li>

<li><span><a href=”#” onClick=”openpdf(‘dropbox.pdf’)”>文件1</a></span><span><a href=”#” onclick=”downloadFile(‘dropbox.pdf’,1);”>下载</a></span><span><a href=”#” onClick=”openpdf(‘dropbox.pdf’)”>打开</a></span><span><a href=”#” onClick=”removefile(‘dropbox.pdf’,1)”>删除</a></span></li>

<li><span><a href=”#” onClick=”openpdf(‘ad_pdf0.pdf’)”>文件2</a></span><span><a href=”#” onclick=”downloadFile(‘ad_pdf0.pdf’,2);”>下载</a></span><span><a href=”#” onClick=”openpdf(‘ad_pdf0.pdf’)”>打开</a></span><span><a href=”#” onClick=”removefile(‘ad_pdf0.pdf’,2)”>删除</a></span></li>

<li><span ><a href=”#” onClick=”openpdf(‘purchase.pdf’)”>文件3</a></span><span><a href=”#” onclick=”downloadFile(‘purchase.pdf’,3);”>下载</a></span><span><a href=”#” onClick=”openpdf(‘purchase.pdf’)”>打开</a></span><span><a href=”#” onClick=”removefile(‘purchase.pdf’,3)”>删除</a></span></li>

</ul>

添加js方法:

1.初始化文件请求:

window.appRootDirName = “download_pdf”; /定义文件下载后的存放目录

document.addEventListener(“deviceready”, onDeviceReady, false);
function onDeviceReady() {
console.log(“device is ready”);
var gotFS =    function(fileSystem) {
window.fileSystem = fileSystem; // 将filesystem 定义为全局变量

fileSystem.root.getDirectory(window.appRootDirName, {//创建一个目录

create : true,

exclusive : false

}, dirReady, fail);
console.log(“application dir is ready”);

}
window.requestFileSystem(LocalFileSystem.PERSISTENT, 20*1024*1024 , gotFS, fail); //请求一个文件系统

//return root;

}

function fail(error) {

console.log(“failed to get filesystem:”+error);

}

function dirReady(entry) {

window.appRootDir = entry;  //将appRootDir 定义为全局变量
}

2.定义下载方法

 

  function downloadFile(filen,id){

var str = localStorage.getItem(“pdffile”);//这里是判断是否已经下载,用来更新文档下载状态

if(str != null){

if(str.indexOf(filen)+1){

alert(“文件已存在无需再下载!”);

return;

}

}

var fileTransfer = new FileTransfer();

var uri = encodeURI(“http://dev.*****.com.cn/appDownload/”+filen+””);//定义下载的路径

var filePath = window.appRootDir.fullPath+”/”+filen;

navigator.notification.activityStart(“提示”, “数据正在下载中……”); //定义一个下载过度效果

fileTransfer.download(

uri,

filePath,

function(fileEntry) {

navigator.notification.activityStop();
navigator.notification.alert(“下载成功”);

//alert(fileEntry.fullPath);

console.log(“download complete: ” + fileEntry.fullPath);

console.log(“download name: ” + fileEntry.name);

var b = localStorage.getItem(“pdffile”);//获取b的值
console.log(“b:”+b);
if(b){

var a = b+”,”+fileEntry.name;

localStorage.setItem(“pdffile”,a);
}else{

localStorage.setItem(“pdffile”,fileEntry.name);

}
$(“#pdf li:eq(“+id+”) a:eq(1)”).text(“已下载”);         //更改下载状态

},

function(error) {

navigator.notification.activityStop();

alert(“下载失败”);

alert(“error”);

alert(JSON.stringify(error));

console.log(“download error source ” + error.source);

console.log(“download error target ” + error.target);

console.log(“upload error code” + error.code);

}

);

}

3.定义打开文档方法

 

function openpdf(ad){

var str = localStorage.getItem(“pdffile”);//判断是否已经下载,如果下载就打开该文档

if(str != null){

if(str.indexOf(ad)+1){

window.plugins.fileOpener.open(“file:///mnt/sdcard/download_pdf/”+ad);

}else{

alert(“文件未下载!”);

}

}else{

alert(“文件未下载!”);

}

}

4.删除已下载文档

     function removefile(filen,id) {
var str = localStorage.getItem(“pdffile”);//判断文档是否存在 如果存在就删除。

if(str==null){navigator.notification.alert(filen+’不存在!’);return;}
var newstr=str.replace(filen,””);
localStorage.setItem(“pdffile”,newstr);
console.log(“newstr:”+newstr);
window.appRootDir.getFile(filen, {create: false,exclusive: false},
function(fileEntry){

console.log(“name:”+fileEntry.name);

fileEntry.remove(

function() {
navigator.notification.alert(fileEntry.name+’已删除!’);

$(“#pdf li:eq(“+id+”) a:eq(1)”).text(“下载”);
},

fail);

},
function(error){

navigator.notification.alert(filen+’不存在!’);

console.log(“Error removing file: ” + error.code);

}

);

}

这样几个方法就可以很好实现文档下载,打开阅读,状态更改,删除文件等功能。

 

demo下载:pdf下载及阅读-android

转载请注明:夜阑小雨 » phonegap-文件下载-打开阅读开发【andriod】

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址