gwt-phonegap FileReader 不工作(iOS)
Posted
技术标签:
【中文标题】gwt-phonegap FileReader 不工作(iOS)【英文标题】:gwt-phonegap FileReader not working (iOS) 【发布时间】:2015-07-20 08:27:44 【问题描述】:我正在尝试使用 gwt-phonegap
(cordova/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 = 属性不存在