【问题标题】:Cordova - downloading zip file to applicationCordova - 将 zip 文件下载到应用程序
【发布时间】:2014-06-16 02:53:36
【问题描述】:

我正在为 Android、iOS、Windows Phone 8 和 Windows 8 构建一个 Cordova 应用程序。 我想从服务器或云服务(例如 Google Drive、Dropbox 或其他)下载 zip 文件。 我的版本是 3.3.0。 我已经测试了文档之一,但什么也没发生。另外,搜索一些其他网站,但没有一个工作。

var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/1.zip");
var fileurl= "\assets\www\data\1.zip";



fileTransfer.download(
uri,
fileURL,
function(entry) {
    console.log("download complete: " + entry.toURL());
},
function(error) {
    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=="
    }
}
);

请帮助我应该改变或做什么。另外,我想问一下路径是否在iOS,windows phone和windows 8中。

【问题讨论】:

  • 您遇到了什么错误?查看控制台并查看错误。
  • 因为我正在使用命令行来构建应用程序。我在 ant-build 的文件夹中找到应用程序(apk 文件)并将其发送到 Android 手机进行测试。当我打开它时没有任何输出,并且在转到该页面后 wifi 有一些传输。我试图找到是否有任何东西已经下载,但什么都找不到。
  • 由于 _cordovaNative 缺失而退回到 PROMPT 模式。仅适用于 Android 3.2 及更低版本。 cordova.js:966
  • 我在使用 chrome 桌面运行页面时收到上面两条错误消息

标签: android ios cordova zip


【解决方案1】:
  1. 将 var uri 更改为您的服务器地址,例如在 localhost 上

  2. var fileurl = encodeURI("cdvfile://localhost/persistent/1.zip");

【讨论】:

    【解决方案2】:
    function downloadFile() { 
     var fileTransfer = new FileTransfer();var uri = 
     encodeURI("http://yourserver/yourzip.zip");
      var fileURL =  "///storage/emulated/0/localstorage/zipfile.zip";
    
      fileTransfer.download(
      uri, fileURL, function(entry) {
         console.log("download complete: " + entry.toURL());
      },
    
      function(error) {
         console.log("download error source " + error.source);
         console.log("download error target " + error.target);
         console.log("download error code" + error.code);
      },
    
      false, {
         headers: {
            "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
         }
      }
    );
    }
    

    【讨论】:

      【解决方案3】:
      downloader.init({ folder: 'DownloadedData', fileSystem: cordova.file.externalDataDirectory,unzip: true});
              downloader.get("path of your server");
              document.addEventListener('DOWNLOADER_downloadSuccess', function (event) {
                  var data = event.data;
                  alert("successfully downloaded");
              });
      

      在 config.xml 中添加以下权限以获得对设备存储的访问权限

      <preference name="AndroidPersistentFileLocation" value="Internal" />
          <preference name="AndroidPersistentFileLocation" value="Compatibility" />
          <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,root" />

      没有这个权限下载是不会成功的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-08
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 2019-02-05
        相关资源
        最近更新 更多