当前位置: 首页 > news >正文

【phonegap】下载文件


<!-- 打包的时候phonegap自己会添加这个文件--> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <!-- <script type="text/javascript" charset="utf-8" src="js/FileTransfer.js"></script> --> <script type="text/javascript" charset="utf-8"> // Wait for device API libraries to load // document.addEventListener("deviceready",onDeviceReady,false); // device APIs are available // function onDeviceReady() { alert('onDeviceReady2222'); try { /* window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; window.resolveLocalFileSystemURL = window.resolveLocalFileSystemURL || window.ebkitResolveLocalFileSystemURL; //根据URL取得文件的读取权限 */ //查找是否有download这个文件夹,没有则创建,然后找到这个文件夹的绝对路径 window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { fileSystem.root.getDirectory("download", { create: true, exclusive: false }, function (entry) { //网上流传的资料中都是使用fullPath,在这里我获取到的是相对目录,在下载时使用会报错,所以换做了toURL() //这是一个全局全局变量,用以保存路径 fullPath = entry.toURL(); alert(fullPath.toString() + '创建文件夹成功'); //console.log(fullPath); }, function () { console.log('创建文件夹失败'); alert('创建文件夹失败'); }); }, function () { console.log('创建文件夹失败'); alert('创建文件夹失败'); }); } catch (e) { alert(e.name + ":" + e.message); } }
function downloadFile() {
        alert(androidFile);
  
        try {
          // onDeviceReady();
          var ft = new FileTransfer();
          var uri = encodeURI(androidFile);
          var fileURL = fullPath + androidFile.substr(androidFile.lastIndexOf('/') + 1);
          alert("准备下载"+fileURL);

          ft.download(
              uri,
              fileURL,
              function(entry) {
                  OpenFile(entry.fullPath);
                  console.log("download complete: " + entry.toURL());
              },
              function(error) {
                  alert("download error source " + error.source);
                  alert("download error target " + error.target);
                  console.log("download error source " + error.source);
                  console.log("download error target " + error.target);
                  console.log("upload error code" + error.code);
              },
              false,
              {
                  headers: {
                      "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
                  }
              }
          );
        }
        catch (e) {
          alert(e.name + ":" + e.message);
        }
      }
<div>                  
                  <a id="androidurl"  href="#" onclick="downloadFile();return false;"><img class="productImg" src="res/android.png" alt="ANDROID" width="80px" height="80px" />Android版</a>
              </div>

 前提是安装插件:

cordova create my-app

cd my-app

cd plugin

cordova plugin add org.apache.cordova.file-transfer

cordova plugin add org.apache.cordova.file

cordova build android

测试版本是cordova 4.1.2

相关文章:

  • DES算法总结
  • 基于C 的libvirt 接口调用
  • python基础知识~元组,range和字典
  • 【ios】UITableView中的uitablviewcell在64位下显示重叠问题
  • Python生物学 Python for Bioinformatics 2nd - 2018.pdf
  • 服务发现系统consul-health check
  • 数据类型与运算符小结(JAVA)
  • redis的复制
  • 人工智能 + 物联网 = 智慧物联网
  • extjs Date的使用
  • rocketmq-producer
  • 谈谈javascript语法里一些难点问题(一)
  • 火箭还是飞机?——DevOps 的两种模式
  • linux下smb打印服务器部署过程(对windows终端)
  • 从JEditorPane入手,分析其中的MVC模式
  • 时间复杂度分析经典问题——最大子序列和
  • $translatePartialLoader加载失败及解决方式
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • angular2开源库收集
  • C++类中的特殊成员函数
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • java小心机(3)| 浅析finalize()
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • 从零开始在ubuntu上搭建node开发环境
  • 第十八天-企业应用架构模式-基本模式
  • 翻译--Thinking in React
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 每天10道Java面试题,跟我走,offer有!
  • 七牛云假注销小指南
  • 协程
  • 因为阿里,他们成了“杭漂”
  • NLPIR智能语义技术让大数据挖掘更简单
  • 移动端高清、多屏适配方案
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (九)c52学习之旅-定时器
  • (十三)Maven插件解析运行机制
  • (算法二)滑动窗口
  • (译) 函数式 JS #1:简介
  • (转)C#调用WebService 基础
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 反射的使用
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET单元测试
  • @staticmethod和@classmethod的作用与区别
  • [Android 13]Input系列--获取触摸窗口
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [CSS]中子元素在父元素中居中
  • [docker] Docker的私有仓库部署——Harbor
  • [GN] 设计模式——面向对象设计原则概述
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页