gwt-phonegap FileReader 不工作 (iOS)

gwt-phonegap FileReader not working (iOS)

我正在尝试使用 gwt-phonegapcordova/phonegap 的包装器以简化 GWT 应用程序中的使用)从 iOS 设备读取文件。 根据教程 (https://code.google.com/p/gwt-phonegap/wiki/FileModule),我需要先请求文件系统,然后获取我要读取的文件的文件条目,最后创建一个 reader,注册 onload 回调,然后调用 reader.readAsText(fileEntry);.

一切正常,除了永远不会回调处理程序。

我还注册了所有其他回调 - none 被调用。这很奇怪。至少应该调用错误回调。

这似乎是 gwt-phonegap 中的错误。 通过阅读 Cordova 的文档,我注意到 readAsText 的原始 Cordova 版本需要一个文件而不是文件条目,但是,readAsText 的 gwt-phonegap 版本需要一个文件条目。这看起来很奇怪。所以我检查了 FileReaderJsImpl 的代码,它是 gwt-phonegap 包装器的实际实现。确实,直接使用文件条目是错误的。 我复制了 class 并用以下修复程序替换了 readAsText0 操作,解决了 readAsText 的问题(readAsDataUrl 需要类似的修复程序):

private native void readAsText0(JavaScriptObject entry) /*-{
    var that = this;

    entry.file(gotFile, fail);

    function gotFile(file) {
        that.readAsText(file);
    }

    function fail(error) {
        // should be forwarded to caller somehow
    }
}-*/