FileReader在Ionic 2中没有触发onloadend

时间:2016-03-29 11:49:58

标签: javascript file cordova plugins ionic-framework

我尝试使用cordova-file-plugin读取本地文件。目前,我能够读取本地目录的内容并选择单个文件。但是我在获取文件内容方面遇到了问题。

这是我从列表中选择文件后点击按钮调用的功能:

import() {
    window.resolveLocalFileSystemURL(this.file.nativeURL, this.gotFile, this.fail);
}

这里有两个函数 gotFile 失败

fail(e) {
    console.log(e);
}

gotFile(fileEntry) {
    var file = fileEntry.nativeURL;

    fileEntry.file(function(file) {
        var reader = new FileReader();

        reader.onloadend = function(e) {
             console.log('onloadend()'); 
        };

        reader.readAsText(file);

        console.log(reader);
    }); 
}

我可以在日志中看到读者包含 result 下我文件的所有想要的内容,但是我无法获取并使用它。 readyState 是2,但所有内部reader.onloadend都没有被调用。使用Ionic 1,此代码可以正常运行。

我很高兴,如果有人可以帮助我。提前谢谢!

2 个答案:

答案 0 :(得分:9)

离子2中的已知问题

在cordova.js修复之前加载zone.js.

特定于ionic2维持此序列顺序。

<script src="build/polyfills.js"></script> <script src="cordova.js"</script>

,因为polyfills.js执行zone.js。

答案 1 :(得分:1)

虽然我没有使用过onloadend,但我已成功使用onload事件处理程序代替Ionic 2,也许你可以尝试一下。

请记住,只有在操作成功时它才会返回。

相关问题