【问题标题】:Cordova reader.onloadend is not fired科尔多瓦 reader.onloadend 没有被解雇
【发布时间】:2016-03-14 04:20:03
【问题描述】:

我正在使用 cordova 制作跨平台应用。

我想从照片库中获取图像并在屏幕上预览并将其上传到服务器。 到目前为止,我可以将图像显示在屏幕上。

问题是 reader.onloadend 没有被触发并且没有任何反应。

$scope.getImage = function() {

    var options = {
        quality: 100,
        sourceType: 0     // 0:Photo Library, 1=Camera, 2=Saved Album
    };

    var onSuccess =  function(imageURI) {
        var pic = document.getElementById('addImage');
        pic.style.display = 'block';
        pic.src = imageURI;

        var reader = new FileReader();

        reader.onloadend = function(evt) {
            alert("loaded");
        };

        reader.onerror = function(error) {
            alert("error");
        };

        reader.readAsArrayBuffer(imageURI);
    };

    var onFail = function(message) {
        alert("error");
    };
    navigator.camera.getPicture(onSuccess, onFail, options);
};

我已经为这个问题苦苦挣扎了 2 天,找到了完全相同的线程 phonegap filereader onloadend doesn't work,但还没有解决。

有人有什么建议吗? 感谢您的帮助。

【问题讨论】:

    标签: ios cordova camera filereader


    【解决方案1】:

    我认为这是 Angular 2 中 zone.js 的问题。 一种解决方法是将 FileReader 对象包装到它自己的区域中。

    const WrappedFileReader = window.FileReader
    window.FileReader = function OriginalFileReader(...args) {
      WrappedFileReader.apply(this, args)
      const originalInstance = this[Zone.__symbol__('originalInstance')] // eslint-disable-line
    
      return originalInstance || this
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      相关资源
      最近更新 更多