用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

最新文章

  1. salesforce 零基础学习(二十六)自定义图表chart简单介绍(使用apex和VF实现)
  2. 求SQL语句递归的算法
  3. JS和CSS关于大小写的区分
  4. ASP.NET WebAPI 10 Action的选择(二)
  5. rtc关机闹钟6 AlarmManagerService研究
  6. MIRO发票校验BAPI_INCOMINGINVOICE_CREATE (2013-01-23 10:01:29)
  7. Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
  8. iOS开发-核心动画随笔
  9. CSS3 旋转的八卦图
  10. 实现QQ空间图片预览效果
  11. iOS UITableView 修改滚动条颜色 默认选中第一条
  12. Python 第一章 基础知识
  13. 一个简单的java僵局演示示例
  14. HDU 4291 A Short problem(2012 ACM/ICPC Asia Regional Chengdu Online)
  15. 五. Java集合概要
  16. parsing:NLP之chart parser句法分析器
  17. 「LibreOJ Round #9」CommonAnts 的调和数
  18. C#自定义事件模拟风吹草摇摆
  19. QT插件+ROS 3 导入现有ROS包
  20. scipy线性模块liner(linalg)

热门文章

  1. 操作系统-I/O(4)I/O控制方式
  2. First-Spike-Based Visual Categorization Using Reward-Modulated STDP
  3. 模拟画图题P1185 绘制二叉树
  4. C语言基础练习——打印乘法口诀表
  5. 前端系列-CS与BS的区别
  6. istio的安全(概念)
  7. json对象遍历顺序问题
  8. 理解Django 中Call Stack 机制的小Demo
  9. Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解
  10. Unity技巧集合