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

posted @   爱生活,爱代码  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示