gwt-phonegap FileReader 不工作(iOS)

Posted

技术标签:

【中文标题】gwt-phonegap FileReader 不工作(iOS)【英文标题】:gwt-phonegap FileReader not working (iOS) 【发布时间】:2015-07-20 08:27:44 【问题描述】:

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

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

我还注册了所有其他回调——它们都没有被调用。这很奇怪。至少应该调用 on error 回调。

【问题讨论】:

【参考方案1】:

这似乎是 gwt-phonegap 中的一个错误。 通过阅读 Cordova 的文档,我注意到 readAsText 的原始 Cordova 版本需要文件而不是文件条目,但是,readAsText 的 gwt-phonegap 版本需要文件条目。这看起来很奇怪。所以我检查了 FileReaderJsImpl 的代码,它是 gwt-phonegap 包装器的实际实现。确实,文件条目是直接使用的,这是错误的。 我复制了该类并将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
    
-*/

【讨论】:

以上是关于gwt-phonegap FileReader 不工作(iOS)的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 + Typescript + FileReader.onLoad = 属性不存在

Phonegap - FileReader 不调用/加载

Filereader - 再次上传相同的文件不起作用

判断浏览器是否支持FileReader

Cordova 3.4 FileReader 不工作(没有 onloadend)

Javascript FileReader 读取文件不正确