sencha touch + Cordova 3.x下载文件

今天实现了一个文件下载功能,在网上找了下资料发现有些问题。

我用的是小米1s,安卓 4.1.2,cordova 3.5,打包测试运行正常

首先在控制层launch方法中加入以下代码:

 1         // 等待加载PhoneGap
 2         document.addEventListener("deviceready", onDeviceReady, false);
 3         // PhoneGap加载完毕
 4         function onDeviceReady() {
 5             //查找是否有zgky这个文件夹,没有则创建,然后找到这个文件夹的绝对路径
 6             window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
 7                 //util.appRootDirName 全局变量,这里是zgky
 8                 fileSystem.root.getDirectory(util.appRootDirName, {
 9                     create: true,
10                     exclusive: false
11                 }, function (entry) {
12                     //网上流传的资料中都是使用fullPath,在这里我获取到的是相对目录,在下载时使用会报错,所以换做了toURL()
13                     //这是一个全局全局变量,用以保存路径
14                     util.fullPath = entry.toURL();
15                     //console.log(‘创建文件夹成功‘);
16                     //console.log(util.fullPath);
17                 }, function () {
18                     console.log(‘创建文件夹失败‘);
19                 });
20             }, function () {
21                 console.log(‘创建文件夹失败‘);
22             });
23         }

在获取到一个绝对路径之后,我们就可以用一个方法来下载文件了,方法如下,调用此方法即可下载。

 1   downFile: function (url) {
 2             var me = this,
 3                 //正则表达式,用于获取文件名称
 4             reg = /[^\\\/]*[\\\/]+/g,
 5             //获取下载地址,me.fullPath在main控制层中获取,这是一个全局变量
 6             filePath = me.fullPath + "/" + url.replace(reg, ‘‘),
 7             //下载地址
 8             url = encodeURI(url),
 9             fileTransfer = new FileTransfer();
10              console.log(‘正在下载中,请等待...‘);
11             fileTransfer.download(url, filePath,
12             function (entry) {
13                  console.log(‘下载成功!请在‘ + entry.fullPath + ‘目录中查看‘);15             },
16             function (error) {
17                  console.log(‘下载失败!‘ + error.source);19             });
20         }

在cordova中需要在创建项目时引入以下插件,

::引入文件插件
cordova plugin add org.apache.cordova.file
::引入文件管理插件
cordova plugin add org.apache.cordova.file-transfer

sencha touch + Cordova 3.x下载文件

时间: 2024-11-08 00:49:19

sencha touch + Cordova 3.x下载文件的相关文章

前端是Sencha Touch+ Cordova(转)

从13年初开始,我的关注点一直在两个点上,一个是股票,一个是移动前端和大数据技术,互联网金融的发展会让互联网证券越来越火热,当然,我也希望将这两个关注点结合到一起,做一些事情. 现在,我的APP和微信公众号已经上线,每天下班都会花一个多小时的时间在他们的开发上,每天白天脑子里基本都在想,怎么去改进.完善.还能做哪些有意义的新功能,然后晚上把代码写出来,这期间不仅有技术上的补充,还包括对股市投资的一些知识补充,我老婆说我已经着了魔了,陪她出来逛街时都不在状态.. 随着对股票投资的理解,我的APP的

慢牛股票-基于Sencha touch+Cordova的股票类APP

13,14这两年,我的业余时间都花在了移动互联网技术和股票技术分析上,14年底,终于开发完成慢牛,上线小米应用商店.应用宝.百度应用商店. 慢牛是一款数据分析类的股票APP,提供数据订阅和数据分析,帮助用户择时和选股. 慢牛前端基于cordova+sencha touch开发,利用cordova把st应用打包成app,后端部署在阿里云,基于.net+mysql+redis,为了提高运算效率,还利用zeroMQ做了分布式计算. 2013年以前,我一直在想,只要有足够多的数据,我就可以创业,<大数据

用 Sencha Touch 构建移动 web 应用程序

Sencha Touch 是一个使用 HTML5.CSS3 和 JavaScript 语言构建的移动 web 应用程序框架,在本文中,学习如何应用您当前的 web 开发技能进行移动 web 开发.下载和建立 Sencha Touch,通过一个样例应用程序探究基本原理.学习开始使用 Sencha Touch 框架所需的一切 2012 年 3 月 19 日 内容 概述 Sencha Touch 准备开始 UI components 结束语 参考资料 评论 概述 在软件开发领域中,有两个重要的趋势越来

vue 与 sencha touch

sencha touch 是我踏入前端的大门后,使用的第一个框架,这两天,开始学习使用第二个框架vue.js,这里说说在我眼里它们的区别吧. 1.组织模式 sencha touch 使用的是MVC模式,而vue使用的MVVM模式 2.设计模式 sencha touch 是重量级框架 vue 是轻量级框架 3.发展程度 sench touch 免费版已停更,已走向成熟 vue 是新生代,小鲜肉 4.webApp sencha touch + cordova + sass vue + webpack

[Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容

原文地址:http://blog.csdn.net/lovelyelfpop/article/details/50848524 插件地址:https://github.com/nordnet/cordova-hot-code-push 以下是我对GitHub项目readme的翻译 ---------------------------------------------- Cordova Hot Code Push Plugin 此插件提供了能够使cordova app自己主动更新web内容的功

sencha touch 2.3 结合cordova 环境搭建

sencha touch 2.3环境搭建必备工具 sencha touch 2.3 包sencha cmd 4.0以上JAVA JDK 1.7以上(注意JDK和JRE的区别)Ruby 1.9.3或更早版本android sdk 如果需要生成ANDROID APP 注意将jdk,ruby,sencha cmd都添加到环境变量PATH例jdk path: JAVA_HOME变量路径为C:\Program Files (x86)\Java\jdk1.7.0_67则JDK PATH为%JAVA_HOME

[Cordova+Sencha Touch] 移动开发1 sencha 2.4.0 + 在 安卓2.3.6上使用报错 - has no method &#39;bind&#39;

Sencha Touch 2.3.2和2.4.0在安卓2.3上面用会报错,具体报错信息如下: 解决办法是: 打开文件:你的file:///android_asset/www/sencha-touch-all-debug.js 找到第76728行: if (Ext.feature.has.Touch) { // bind handlers that are only invoked when the browser has touchevents me.onTargetTouchMove = me

[Phonegap+Sencha Touch] 移动开发36 Phonegap/Cordova项目的图标和启动画面(splashscreen)配置

Phonegap/Cordova项目中的config.xml文件,里面配置了下面的内容: <icon gap:platform="android" gap:qualifier="ldpi" src="res/icon/android/icon-36-ldpi.png" /> <icon gap:platform="android" gap:qualifier="mdpi" src=&quo

phonegap与sencha touch互相传值显示

本文使用的phonegap版本为2.9.0,sencha touch为2.4.0,phonegap jar包可以去官网下载. 以android toast作为例子: 首先在st项目中建一个view Ext.define('HelloWorld.view.Main', { extend: 'Ext.form.Panel', xtype: 'main', requires: [ 'Ext.field.Text','Ext.form.Panel' ], config: { fullscreen: tr