【问题标题】:Cordova FileTransfer show downloaded imageCordova FileTransfer 显示下载的图像
【发布时间】:2016-05-17 08:37:01
【问题描述】:

我正在使用以下代码将图像下载到本地存储:

function saveImageToPhone(url, file) {

    var plat = device.platform;
    var deferred = $q.defer();
    var url = url;
    if(plat == "iOS"){
      var filePath = cordova.file.dataDirectory + "files/img/" +file;
    }else{
      var filePath = cordova.file.applicationStorageDirectory + "files/img/" +file;
    }

    var fileTransfer = new FileTransfer();
    var uri = encodeURI(url);

    fileTransfer.download(
      uri,
      filePath,
      function(entry) {
        console.log(entry);
        deferred.resolve();

      },
      function(error) {
        console.log("error");
        deferred.resolve();

      },
      true
    );

    return deferred.promise;
  }

我正在显示图像:

<img src="file:///var/mobile/Containers/Data/Application/0C911347-00D1-4133-9186-D9653E64B572/Library/NoCloud/files/img/{{myimagename}}.jpg">

以上代码在 android 中运行良好(使用其他 src-path)。图像被下载、保存并显示在 frontedn 中。

在下载成功时调用 iOS 函数,xCode 调试器向我显示积极响应:

{"isFile":true,"isDirectory":false,"name":"3866938200000.1.jpg","fullPath":"/files/img/3866938200000.1.jpg","filesystem":"<FileSystem: library-nosync>","nativeURL":"file:///var/mobile/Containers/Data/Application/2A84F1F2-56D7-419A-B915-905C32FE851C/Library/NoCloud/files/img/3866938200000.1.jpg"}

但是图片没有显示在前端。是否有一个选项来检查 iOS 的文件系统(没有越狱设备)以检查文件是否真的存在?还是我错过了什么?我的图片的 src-path 是否正确?

提前致谢

【问题讨论】:

  • 我看到这个标识符“0C911347-00D1-4133-9186-D9653E64B572”在应用新启动后不一样了。有没有办法让该标识符持久化?

标签: cordova ionic-framework file-transfer


【解决方案1】:

我看到你正在使用cordova文件插件

您应该将路径保存在 $scope 中,以便将其附加到您的 html 中

在您的控制器中:

$scope.path = cordova.file.dataDirectory

在你的 html 中

<img src="{{path}}Library/NoCloud/files/img/{{myimagename}}.jpg">

【讨论】:

  • 谢谢!我不知道重启后会重新计算 UUID。谢谢!
  • 你能删除赞成票,只让接受的答案吗?我想赢得徽章:)
  • 完成。非常感谢;)
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
相关资源
最近更新 更多