zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Spinner用法与ListView用法
    ViewPager实现选项卡功能
    android:layout_weight的真实含义
    vb和vb.net事件机制
    go
    挨踢江湖之十一
    蓝桥杯-地铁换乘
    【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用
    Eclipse3.6 添加JUnit源代码
    【分享】如何使用sublime代码片段快速输入PHP头部版本声明
  • 原文地址:https://www.cnblogs.com/zhengwei-cq/p/13722479.html
Copyright © 2011-2022 走看看