hbuilder项目总结:下载附件判断是否打开并在本地管理已下载附件

来源:互联网 发布:养生网站源码带手机站 编辑:程序博客网 时间:2024/05/16 10:05

———1. 下载附件
此处涉及到文件是否第一次下载

var dtask = plus.downloader.createDownload(loadUrl, {filename:relativePath}, function(d, status) {                // 下载完成                //alert("执行")                if(status == 200) {                    var index = d.filename .lastIndexOf("\/");                      var  name = d.filename .substring(index + 1, d.filename .length);                    /*localStorage.removeItem("fileList");                    return;*/                    console.log(loadUrl)                    var myDate = new Date();                    console.log(myDate)                    var file = '{"date":"' + myDate.toLocaleString() + '","id":"' + d.filename + '","name":"' + name + '"}';                    console.log(file)                    var file1 = localStorage.getItem("fileList");                    console.log("size========="+file1);                //  return;                    console.log(file1);                    if(file1 != null) { //不是第一次下载文件                    //判断是否已经存在                        console.log("jinru");                        file=file+","+file1;                        console.log(file);                        localStorage.setItem("fileList", file);                         console.log("filealist="+localStorage.getItem("fileList"));                     } else {                        var  jsonList=[];                        var jsonarray = eval(jsonList);//定义追加格式                        jsonarray.push(file);                        var files=JSON.stringify(jsonarray);                        localStorage.setItem("fileList", file); //第一次下载文件存储字符串                    }                    var btnArray = ['否', '是']; //弹框消息确认是否打开附件                    mui.confirm('是否打开附件查看?', '下载成功', btnArray, function(e) {                        if(e.index == 1) { //打开附件                        plus.runtime.openFile( d.filename, {}, function(e) {                        plus.nativeUI.alert("无法打开此文件:" + e.emssage);                    });                        } else { //不打开                        }                    })                } else {                    plus.nativeUI.toast("下载失败!");                }            });

——————-2.打开文件

plus.runtime.openFile( d.filename, {}, function(e) {                        plus.nativeUI.alert("无法打开此文件:" + e.emssage);                    });

——————3.本地管理已经下载附件
hbuilder下载目录默认为_download下
在获取文件目录时区分mui已经提供的方法,本地采用获取本地缓存的方式获得

var filelist=localStorage.getItem("fileList");var jsonList="["+filelist+"]";console.log("jsonList="+jsonList);console.log("jsonList="+jsonList);var files = $.parseJSON(jsonList);//将之前的文件转换为jsonmui.each(files, function(i, backlog) {                    console.log("backlog="+backlog)                    tt +=' <li class="mui-table-view-cell">';                    tt += '<div class="mui-table" onclick="look(\'' + backlog.id + '\');">';                    tt += ' <div class="mui-table-cell mui-col-xs-10">';                    tt +=' <h4 class="mui-ellipsis">';                    //tt +='<li class="mui-table-view-cell" onclick="look(\'' + backlog.id + '\');"><div class="mui-slider-right mui-disabled"><a class="mui-btn mui-btn-red">删除</a></div><div class="mui-slider-handle mui-table"><div class="mui-table-cell">'                    tt += backlog.name;                    tt +='</h4>';                    tt +=' <h5>';                    tt +='来自:'                    tt += backlog.title;                    tt += '</h5>';                    tt += '</div>';                    tt +=' <div class="mui-table-cell mui-col-xs-4 mui-text-right">';                    tt +='<span class="mui-h5">';                    tt += backlog.date;                    tt += '<input type="hidden" id="inner"  value="' + backlog.id + ';">';                    tt +='</div>';                    tt +='</div>';                    tt+='<div>'                    tt += '<button   style="float:right" type="button"  class="mui-btn mui-btn-danger mui-btn-outlined"   onclick="del(\'' + backlog.id + '\');">';                    tt +='';                    tt +='<span class="mui-icon mui-icon-trash"></span></button>'                    tt +='</div>';                    tt +='</li>';                });                $("#listCenterColumn").html(tt);

删除功能:先删除本地缓存中数据,再删除系统文件,暂时不涉及ios系统

function  del(url){        var btnArray = ['否', '是']; //弹框消息确认是否打开附件                    mui.confirm('是否删除该附件?', '删除成功', btnArray, function(e) {                        if(e.index == 1) { //打开附件                            //测试        console.log("路径为:"+url);        //删除本地缓存中对应值        var filelist=localStorage.getItem("fileList");        console.log("filelist="+filelist);        //将字符串转换成数组形式        var jsonList="["+filelist+"]";        //将之前的文件转换为json        var files = $.parseJSON(jsonList);        var   fil="";        mui.each(files, function(i, backlog) {        console.log("url="+url);        console.log("files[i].id="+backlog.id);        if(backlog.id!=url){            fil =fil+","+JSON.stringify(backlog);            console.log("fil="+fil);        }        });        fil=fil.substr(1);        console.log("fil========="+fil);        console.log("jsonList="+jsonList);        //return;        localStorage.setItem("fileList",fil);        //执行删除        plus.io.requestFileSystem(plus.io.PRIVATE_DOC,function(fs){        fs.root.getDirectory(url, {create: false}, function(dirEntry) {                console.log("进入删除方法")                dirEntry.removeRecursively(function() {                    console.log("进入删除方法")                    plus.nativeUI.toast("删除成功!");                    doInit();                    console.log('Directory successufully removed.');                }, function(e){                    plus.nativeUI.toast("删除失败!"+e.message);                    console.log("cuowu"+e.message)                });            }, function(e){                    plus.nativeUI.toast("删除失败!"+e.message);                    //console.log("cuowu"+e.message)                });             });                        }                         else { //不打开                            //info.innerText = 'MUI没有得到你的认可,继续加油'                        }                    });