【问题标题】:gwt-phonegap FileReader not working (iOS)gwt-phonegap FileReader 不工作(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 回调。
【问题讨论】:
标签:
ios
cordova
gwt
phonegap-build
【解决方案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
}
}-*/