appcan 文件下载与预览
用appcan开发的app如何在手机上查看附件和预览附件呢?今天就为大家介绍一下,用APP看附件实大是太方便了。
1、直接上代码吧,首先要初始化插件用到的所有方法。这个方法中
cbIsFileExistByPath 是判断文件是否存在时的回调函数。如果不存在就到服务器上去下载,如果存在就直接打开。
cbCreateDownloader 创建下载对象回调,
onStatus 是下载状态的回调,在这里面我个可以在页面上加入下载的进度条。
//初始化 appcan.ready(function () { initLoadDown(); }); var docName; var savePath; var serviceUrl; var id; function initLoadDown() { var cText = 0; var cJson = 1; var cInt = 2; uexFileMgr.cbIsFileExistByPath = function (opId, dataType, data) { if (data == 0) { //不存在 appcan.window.openToast("正在加载", 2000, 5, 1); uexDownloaderMgr.createDownloader(id); } else if (data == 1) { appcan.window.openToast("正在打开", 1000, 5, 1); uexDocumentReader.openDocumentReader(savePath);//打开 } else { appcan.window.openToast("出错啦", 2000, 5, 0);//出错//出错 } } uexDownloaderMgr.cbCreateDownloader = function (opCode, dataType, data) { switch (dataType) { case cText: alert("uex.cText"); break; case cJson: alert("uex.cJson"); break; case cInt: var headJson = '{"Content-type":"application/json;charset=utf-8"}'; uexDownloaderMgr.setHeaders(1, headJson); uexDownloaderMgr.download(id, serviceUrl, savePath, 1); break; default: appcan.window.openToast("出错啦", 2000, 5, 0);//出错 } } uexDownloaderMgr.onStatus = function (opCode, fileSize, percent, status) { switch (status) { case 0: document.getElementById('percentage').innerHTML = "<span style='color:green'>下载进度:" + percent + "%</span>"; break; case 1: uexDownloaderMgr.closeDownloader(id); uexDocumentReader.openDocumentReader(savePath); break; case 2: appcan.window.openToast("下载失败,系统中找不到该文件", 2000, 5, 0); uexDownloaderMgr.closeDownloader(id); break; case 3: appcan.window.openToast("下载取消", 2000, 5, 0); break; } } }
2、用户在点击文件时时肯定会触发单击事件。这里是所有预览开始方法。只要判断文件是否存在就行了,他们自动触发1中的回调函数cbIsFileExistByPath
savePath 是你手机上文件的保存路径,serviceUrl是服务器中文件的路径。参数name是文件件,id随便给一个值就行,可能是为了在手机上区分不同文件。v是时间戳加文件名(存入数据的名字和存在服务器中的名字)
function openDocument(v, name) { savePath = "wgt://data/down/" + name; id = 2; var d = new Date(); var _year = d.getFullYear(); serviceUrl = GetApprovalServiceHostIp() + "/upload/"+ _year +"/" + v; uexFileMgr.isFileExistByPath(id, savePath);//根据路径判断文件是否存在 };
3、代码已完成了,因为很多功能都是APPCAN公共的插件帮我们完成了,那我就要在打包是加入这些插件。
重要事件:有需要微信投票、阅读量、注册、点赞的朋友可以找我哦,百万水军。tel/vx:18963948278