Ionic 2中的FileReader没有触发onloadend事件

5
我正在尝试使用cordova-file-plugin读取本地文件。目前,我能够读取本地目录并选择单个文件的内容。但是我有问题获取文件的内容。
这是我的函数,在从列表中选择文件后通过点击按钮调用:
import() {
    window.resolveLocalFileSystemURL(this.file.nativeURL, this.gotFile, this.fail);
}

下面是两个函数gotFilefail:

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);
    }); 
}

我可以在日志中看到reader下的所有所需文件内容,但我无法获取并使用它。 readyState为2,但是在reader.onloadend内部的所有内容都没有被调用。 在Ionic 1中,此代码运行良好。

如果有人能帮助我,我将非常感激。提前感谢!

2个回答

10

Ionic 2已知问题

在cordova.js之前加载zone.js即可解决此问题。

对于ionic2,请保持这个顺序。

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

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


我可以解决同样的问题。非常感谢。你让我免于10天的挫败感。 - gee'K'iran
我的应用程序表现得很奇怪:主题中声明的颜色数量破坏了软件的某些部分(数据库加载),在更改导入顺序后,软件开始按预期工作。 - Dimas Crocco
@ParthGhiya 在 Ionic 中应该在哪里添加这些行? - Waleed Arshad

2

虽然我没有使用过onloadend,但在Ionic 2中,我成功地使用了onload事件处理程序,也许你可以尝试一下这个。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接