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

  • 相关阅读:
    小米9一直无限重启是怎么办
    发现一个大神做了一个ROS-ROUTEROS的中文手册中文使用说明书
    浅谈CN2 GIA和CN2 GT线路的区别
    本地ROS多线访问同一个服务器的IP,比如阿里云的IP,创建冗余线路
    syslog之三:建立Windows下面的syslog日志服务器
    增值税专用发票“抵扣联”和“发票联”丢失怎么办
    在线播放 4K 内容的需要多少带宽?
    戴尔R640服务器用H740P配置阵列
    搞微服务用阿里开源的 Nacos 真香啊!
    保持ssh不自动断开
  • 原文地址:https://www.cnblogs.com/mlzs/p/3825090.html
Copyright © 2011-2022 走看看